diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..14a862fa --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,14 @@ +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 f84f9e34..44fdbcfd 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/ChangeLog b/ChangeLog index 910cf2f2..1e842938 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,10 +1,353 @@ -ChangeLog of SoftEther VPN --------------------------- +SoftEther VPN 4.23 Build 9647 Beta (October 18, 2017) +Upgraded OpenSSL to 1.0.2l. +Source code is now compatible with OpenSSL 1.1.x. Supports DHE-RSA-CHACHA 20-POLY 1305 and ECDHE-RSA-CHACHA 20-POLY 1305, which are new encryption methods of TLS 1.2. (In order to use this new function, you need to recompile yourself using OpenSSL 1.1.x.) +TrafficServer / TrafficClient function (The traffic throughput measurement function) is now multithreaded and compatible with about 10 Gbps using NIC with the RSS feature. +Changed the default algorithm for SSL from RC4-MD5 to AES128-SHA. +Fixed a bug that occurr wrong checksum recalculation in special case of the TCP-MSS clamp processing. +Fixed the calculation interval of update interval of DHCP client packet issued by kernel mode virtual NAT function of SecureNAT function. +Driver upgrade and DLL name change with Crypto ID support of USB security token. +Fixed a problem that CPU sleep processing was not performed when the wait time of the Select () function was INFINITE on Mac OS X. +Added the StrictSyslogDatetimeFormat flag onto the ServerConfiguration section on the VPN Server configuration file, which sets Syslog date format to RFC3164. +Fixed wrong English in the UI. +Using client parameter in function CtConnect +Remove blank line at the start from init file (Debian) +Stop Radius Delay from counting to next_resend +Add DH groups 2048,3072,4096 to IPSec_IKE +Add HMAC SHA2-256, HMAC SHA2-384, HMAC SHA2-512 support +Openvpn extend ciphers +Fixed RSA key bits wrong calculation for certain x509 certificate +Added support for RuToken USB key PKCS#11 +OpenSSL 1.1 Port -The ChangeLog of SoftEther VPN is on our web site: -http://www.softether.org/5-download/history +SoftEther VPN 4.22 Build 9634 Beta (November 27, 2016) +Added the support for TLS 1.2. Added TLS 1.2-based cipher sets: 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 and ECDHE-RSA-AES256-SHA384. +Added the function to allow to configure specific TLS versions to accept / deny. In the VPN Server configuration file you can set Tls_Disable1_0, Tls_Disable1_1 and Tls_Disable1_2 flags to true to disable these TLS versions individually. +Added the support for TLS 1.2 on the OpenVPN protocol. +Updated the version of OpenSSL to 1.0.2j. +Added the support for Windows Server 2016. +Fixed the 2038-year problem. +Added the support for recording HTTPS destination hostnames, using SNI attributes, on the packet logging function. +Added the function to append the name of Virtual Hub into the "Called-Station-ID (30)" attribute value in the RADIUS authentication request packet. +Improved the behavior of Virtual Layer-3 switches. The interval of ARP request is set to 1 second. +Fixed the problem of the slow startup of VPN Server in Windows 10. +Added the support for 4096 bits RSA authentication with smart cards. +Added the support for the CryptoID USB token. +Fixed the UI string resource in English. +Fix that ParseTcpOption doesn't work correctly +Add LSB header +Support Debian package build on aarch64 architecture +Support Debian package build on ARMv7l architecture +cppcheck issues +Default to TLS connections only +Allow specific SSL/TLS versions to be disabled +Adding Radius AVP Called-Station-Id +Fixed typo +Update CentOS makefiles and spec file +Systemd service configuration files for SoftEther +Fix set initialization, set.OnlyCapsuleModeIsInvalid could be garbage +Fixed OSX CPU utilization by replacing broken kevent () with select () +Add the possibility to send the Virtual Hub Name to an external DHCP server +Added armv5tel for debian/rules and made pushed routes work correct with OpenVPN +fix LogFileGet won't save to SAVEPATH +Fix for Debian Package +Try to autodetect OS and CPU instead of requiring user input +Support For Radius Realm -(In Japanese: http://ja.softether.org/5-download/history) +SoftEther VPN 4.21 Build 9613 Beta (April 24, 2016) +Added SoftEther VPN Server Manager for Mac OS X. +Now you can manage your SoftEther VPN Server, running remotely, from your Mac in local. -Enjoy it! +SoftEther VPN 4.20 Build 9608 RTM (April 18, 2016) +All cumulative updates below are included. +Fixed a minor English typo. +SoftEther VPN 4.19 Build 9605 Beta (March 3, 2016) +The version of OpenSSL is updated to 1.0.2g to fix the vulnerability which was published in March 2016. SSLv2 is now disabled completely. +Fixed a multi-byte character problem in the certificate generating tool. +Enable the cache of the destination IP address of the additional TCP connection for a VPN session. + +SoftEther VPN 4.19 Build 9599 Beta (October 19, 2015) +Fixed the problem that an unnecessary "Insert disk" dialog box appears when installing VPN Server or VPN Bridge on Windows 10. +Added the "/NOHUP" parameter in the "TrafficServer" command of vpncmd. +Added the "/REDIRECTURL" parameter in some access list commands of vpncmd. +Added the virtual address check routines in kernel-mode drivers to prevent blue screen or invalid memory access. Previous versions of kernel-mode drivers did not check the virtual addresses from the user-mode. (NOTE: All kernel-mode drivers are protected by ACL to avoid privilege escalation in all previous versions. Only users with Administrator privileges were able to cause blue screen or invalid memory access by passing invalid addresses from the user-mode. Therefore this was not a security flaw.) Appreciate Meysam Firozi's contribution to report the similar problem in the Win10Pcap driver. + +SoftEther VPN 4.19 Build 9582 Beta (October 6, 2015) +Dramatically improvement of the performance of the Virtual NAT function of SecureNAT in Linux. In the previous versions of SoftEther VPN, the SecureNAT performance was very slow in the specific situation that the Linux Virtual Machine (VM) is running with virtual Ethernet interfaces which are prohibited to enable the promiscuous mode (this problem has been frequently appeared on cloud servers such like Amazon EC2/AWS or Windows Azure). In such a situation, SecureNAT must use the user-mode TCP/IP stack simulation and it was very slow and had high latency. This version of SoftEther VPN Server adds the new "RAW IP Mode" in the SecureNAT function. The RAW IP Mode is enabled by default, and is effective only if the VPN Server process is running in the root privileges. In the RAW IP Mode, the SecureNAT function realizes to transmit and receive TCP, UDP and ICMP packets which headers are modified. This behavior realizes drastically improved performance than legacy user-mode SecureNAT in the previous versions. In order to avoid the misunderstanding of receiving packets which are towards to the Virtual NAT function, some packet filter rules are automatically added to the iptables chain list. You can disable the RAW IP Mode by setting the "DisableIpRawModeSecureNAT" value to "1" on the Virtual Hub Extending Options. + +Improved the performance of the Kernel-mode SecureNAT. + +Improved the stability of the L2TP VPN sessions on the network with heavy packet-losses. + +Added the compatibility with Cisco 800 series routers (e.g. Cisco 841M) on the L2TPv3 over IPsec protocol. These new Cisco routers have modified L2TPv3 header interpreter. Therefore SoftEther VPN Server needed to add new codes to support these new Cisco routers. + +Added the support the compatibility to YAMAHA RTX series routers on the L2TPv3 over IPsec protocol. + +Added the support for EAP and PEAP. SoftEther VPN Server can now speak RFC3579 (EAP) or Protected EAP (PEAP) to request user authentications to the RADIUS server with the MS-CHAPv2 mechanism. If this function is enabled, all requests from L2TP VPN clients which contain MS-CHAPv2 authentication data will be converted automatically to EAP or PEAP when it is transferred to the RADIUS server. You must enable this function manually for each of Virtual Hubs. To enable the function converting from MS-CHAPv2 to EAP, set the "RadiusConvertAllMsChapv2AuthRequestToEap" value to "true" in the vpn_server.config. To enable the functin converting from MS-CHAPv2 to PEAP, set both "RadiusConvertAllMsChapv2AuthRequestToEap" and "RadiusUsePeapInsteadOfEap" options to "true". + +SoftEther VPN 4.19 Build 9578 Beta (September 15, 2015) +Solved the problem that kernel mode drivers do not pass the general tests of "Driver Verifier Manager" in Windows 10. + +SoftEther VPN 4.18 Build 9570 RTM (July 26, 2015) +Compabible with Windows 10. +Solved the problem that the customized language setting on the "lang.config" file. +config sometimes corrupts in the rare condition. + +SoftEther VPN 4.17 Build 9566 Beta (July 16, 2015) +Improved stability with Windows 10 Beta. +Updated the OpenSSL library to 1.0.2d. + +SoftEther VPN 4.17 Build 9562 Beta (May 30, 2015) +Added supports for Windows 10 Technical Preview Build 10130. +Increased the maximum Ethernet frame size from 1560 bytes to 1600 bytes. +Fixed the compiler error while building the source code of SoftEther VPN on Windows. +Added memory tags on the memory allocation function calls in kernel-mode device drivers. +Fixed the freeze problem of the VPN Client that the computer enters to suspend or hibernation state while the VPN Client is connected to the VPN Server. +Windows-version executable and driver files are now signed by the SHA-256 digital code-sign certificate. + +SoftEther VPN 4.15 Build 9546 Beta (April 5, 2015) +Fixed the problem that the Local Bridge function does not work correctly on Windows 10 Technical Preview Build 10049. + +SoftEther VPN 4.15 Build 9539 Beta (April 4, 2015) +Add the code to instruct the VPN Client to disconnect the VPN session automatically when Windows is being suspending or hibernating. + +SoftEther VPN 4.15 Build 9538 Beta (March 27, 2015) +Fixed the dialog-box size problem on Windows 10 Technical Preview Build 10041. + +SoftEther VPN 4.15 Build 9537 Beta (March 26, 2015) +Upgraded built-in OpenSSL from 0.9.8za to 1.0.2a. Please note that this change has not been well-tested. This upgrading of OpenSSL might cause problems. In that case, please post the bug report. + +SoftEther VPN 4.14 Build 9529 Beta (February 2, 2015) +We are very sorry. The previous version 4.13 (beta) has a problem to accept L2TP connections due to the session-state quota-limitation code by the minor change between Build 9514 and 9524. The problem is fixed on this build. Please update to this build if you are facing to the L2TP problem on version 4.13. +Added the function to record underlying source IP addresses of VPN clients on every packet log lines. This function can be disabled by set the "NoPhysicalIPOnPacketLog" flag in the Virtual Hub Extended Option to "1". + +SoftEther VPN 4.13 Build 9524 Beta (January 31, 2015) +Modified the behavior of the Local Bridge function in the VPN Server on Linux. In the previous versions, if several Local Bridge creation operations will be made, then the operations to disable the offloading function on the target Ethernet devices will be conducted as many as same. After this version, the operation to disable the offloading function will be called only once for each device if several Local Bridge creation operations will be made on the same Ethernet device. +Added the "SecureNAT_RandomizeAssignIp" Virtual Hub Extended Option. 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. +Added the "DetectDormantSessionInterval" Virtual Hub Extended Option. 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. +Added the implementation of the SHA () function in the source code. This made the building process easier on the low-memory embedded hardware which has its OpenSSL implementation without the SHA () function. +Improved the behavior on Windows 10 Technical Preview to show the OS version information correctly. + +SoftEther VPN 4.12 Build 9514 Beta (November 17, 2014) +Added the VLAN ID dynamic assignment function by RADIUS. It is very useful when the layer-2 Ethernet segment with aggregated IEEE802.1Q tagged VLANs is bridged to your Virtual Hub. Each VPN session will be assigned its own VLAN ID by the RADIUS attribute value when the user is authenticated by the external RADIUS server unless the user object has a VLAN ID security policy. The RADIUS attribute with the name "Tunnel-Pvt-Group-ID" (ID = 81) will be used as the VLAN ID. The data type must be STRING. This function is disabled by default. You have to set the "AssignVLanIdByRadiusAttribute" value to "1" in the Virtual Hub Extended Options in advance. +Added the OpenVPNDefaultClientOption option in the vpn_server.config. The specified option string will be used alternatively when the connecting OpenVPN Client does not provide the connection string. Some incomplete OpenVPN Clients with the --enable-small compiling option always forget to specify this connection string. This option can make VPN Server allow such OpenVPN Clients. +Improved the DHCP option parser to allow the external DHCP server pushes the classless routing table which exceeds 255 bytes. +Added the support for "hair-pin connection" on the NAT Traversal function. +Fixed the performance problem when the server computer has the wrong resolv.conf setting file on Linux. +Fixed the VPN Client configuration backup folder name which the setup wizard automatically creates. +Fixed the UDP checksum value of the beacon packets which are sent by the Virtual Layer 3 Switch function. + +SoftEther VPN 4.11 Build 9506 Beta (October 22, 2014) +As a response to the SSLv3 POODLE problem we added the "AcceptOnlyTls" configuration flag on the vpn_server.config for SoftEther VPN Server. Please set this flag is you want to completely disable the SSLv3 function in SoftEther VPN Server. +Added the perfect forward security (PFS) support on SSL/TLS. SoftEther VPN Server can now accept connections with DHE-RSA-AES128-SHA or DHE-RSA-AES256-SHA ciphers. + +SoftEther VPN 4.10 Build 9505 Beta (October 3, 2014) +Implemented the hash table algorithm for the MAC address database of Virtual Hubs. It improves the performance when there are a large number of MAC addresses registered on the database. +Improved the performance on slow-CPU hardware (e.g. embedded Linux boxes). +Added the DoNotDisableOffloading flag on Local Bridge settings. This flag will disable the automated disabling operation for hardware offloading on the specified Ethernet interface on Linux. +Supports the kernel-supported IEEE802.1Q tagged VLAN on Windows and Linux. It will enable tagged-VLAN support on the Local Bridge function with some specific network interface drivers. +Added the FloodingSendQueueBufferQuota option. +Sets the lower priority value on the oom_adj process parameter for Linux. +Randomized the reconnection interval in Cascade Connection. +Increased the memory usage limit on 64-bit systems. +Modified the behavior of the ConfigGet command and the /CSV option in vpncmd for Windows to work around for the Windows console API bug. +Added the DisableSessionReconnect option on VPN Server and VPN Bridge. It makes Cascade Connection client sessions to disconnect immediately from the destination VPN Server when the based TCP connection is disconnected. +Makes it enable to use the PrivacyFilterMode security policy on Cascade server VPN sessions. +Added the GlobalParams configuration option on VPN Server and VPN Bridge. It allows administrators to modify and optimize the performance parameters of VPN Server and VPN Bridge. +Reduced the processor time of looking up the ACL entries when storing and forwarding packets across a Virtual Hub. +Reduced the usage of the memory on embedded Linux environments. +Fixed a minor bug on the GUI setting screen of the SecureNAT routing table pushing option. +Added the ServerLogSwitchType and the LoggerMaxLogSize option on VPN Server and VPN Bridge. They can change the logging behavior of VPN Server and VPN Bridge. +Implemented the config template file. The template filename is "vpn_server_template.config" for VPN Server, and "vpn_server_template.config" for VPN Bridge. The VPN Server and VPN Bridge loads the template file as the initial configuration state when the configuration file does not exists. + +SoftEther VPN 4.10 Build 9473 Beta (July 12, 2014) +Added the "SuppressClientUpdateNotification" option in the Virtual Hub Extended Option list. This option will push the flag to the VPN Client to suppress the update notification screen on the VPN Client manager. To push this flag, set "1" to the "SuppressClientUpdateNotification" option in your Virtual Hub. +Added the warning message when the background service process is run by a non-root user (only in UNIX). +Fixed the deadlock bug when UNIX versions of SoftEther VPN Server process is shutting down. +Added supports for third-party PKCS#11 DLLs: ePass 1000 ND / ePass 2000 / ePass 2003 / ePass 3000. +Fixed typo. +The expression of the disclaimer statement for exporting / importing has been modified. +Fixed the VPN Azure connection problem on Version 4.09 Build 9451 Beta. +Fixed the problem that VPN Server Manager and VPN Client Manager sometimes become slow when the update check server is unreachable from the computer. +Removed space characters in every URLs of all download files on the SoftEther VPN Download Center web site to avoid the downloading problem in some HTTP clients. +A github patch which was posted by a contributor has been applied: "update debian packaging, install init script". + +SoftEther VPN 4.09 Build 9451 Beta (June 9, 2014) +Improves User-mode SecureNAT performance by modifying the processing of TCP_FIN packets. It should improve the performance of the FTP protocol. + +SoftEther VPN 4.08 Build 9449 (June 8, 2014) +Add a new command to generate a RSA 2048 bit certificate. +The vpncmd command-line utility has MakeCert command to generate a 1024 bit self-signed RSA certificate. However, in recent years it is recommended to use 2048 bit RSA certificates. Therefore, on this version a new command MakeCert2048 has been added. Use this command to generate a 2048 bit self-signed RSA certificate. + +Workaround for the NAT traversal problem. +Adjusted the priority between TCP/IP Direct Connection and UDP-based NAT-Traversal. On this version (Ver 4.08), NAT-Traversal will always be used if the client program detects that the specified TCP destination port on the destination server is occupied by non-SoftEther VPN Server. Anyone who faces to the connection problem on the VPN Server which is behind the NAT-box should install this update. + +In the previous version (Ver 4.07), when the VPN Client attempts to connect to the VPN Server, the client firstly establish the connection via the TCP/IP direct protocol. If the TCP connection establishes successfully (in the layer-3) but the TCP port returns non-VPN protocol data (in the layer-7), the protocol error occurs immediately even if the NAT-Traversal connection attempt is still pending. This phenomenon often occurs when the VPN Server is behind the NAT-box, and the NAT-box has a listening TCP-443 port by itself. In that condition, the VPN Client attempts to connect to that TCP-443 port firstly, and the protocol error occurs immediately NAT-box returns non-VPN protocol (e.g. HTML-based administration page). + +In order to work around that, this version (Ver 4.08) of VPN Client changed the behavior. On this version, if the VPN Client detects that the destination TCP Port is occupied by a non-VPN program, then the client will always use NAT-Traversal socket. This minor change will fix the connection problem to VPN servers behind the NATs. + +Note: The built-in NAT-Traversal function on SoftEther VPN is for temporary use only. It is not recommended to keep using UDP-based NAT-Traversal connection to beyond the NAT-box when the VPN Server is behind the NAT-box, for long-term use. It is reported that some cheap NAT-boxes disconnect UDP session in regular period (a few minutes) after NAT-Traversal connection has been made. The strongly recommended method to run VPN Server behind the NAT is to make a TCP port mapping on the NAT-box to transfer incoming VPN connection packets (e.g. TCP port 443) to the private IP address of the VPN Server. + +SoftEther VPN 4.07 Build 9448 (June 6, 2014) +We updated the internal OpenSSL to 0.9.8za. +This fixes the latest OpenSSL vulnerability which has unfold on June 05. +This vulnerability does not affect on SoftEther VPN. However, we updated the SoftEther VPN build with OpenSSL 0.9.8za. The new build also includes additional improvements. +More details about this OpenVPN vulnerability is described at http://www.openssl.org/news/secadv_20140605.txt. + +Other updates on this build are as followings: +The problem with OpenVPN Connect for Android 1.1.14 has been fixed. In the previous versions, OpenVPN Connect for Android 1.1.14 reports "PolarSSL Error" when it connects to the SoftEther VPN Server, if the server SSL certificate is self-signed root certificate. This X.509 certificate parsing problem is OpenVPN Connect's bug, however we performed work around for this OpenVPN Connect's bug. Please mind that you need to regenerate your self-signed root certificate in order to comply with OpenVPN Connect at once after upgrading the VPN Server to this version. To regenerate the certificate, use the GUI tool on VPN Server Manager, or execute the "ServerCertRegenerate" command on vpncmd. + +The automated root certificate and intermediate certificates downloading function has been implemented. It is very helpful when you use a commercial certificate which has been issued by a commercial CA (Certificate Authority), including VeriSign, GlobalSign or RapidSSL. In previous versions, you had to install the root certificate and intermediate certificates manually into the "chain_certs" directory. On this version, you do not need any longer to do such a manual installation of chained certs. + +The OpenVPN configuration file generating function identifies the root certificate correctly, in order to embed it as the "" inline directive in the auto-generated OpenVPN configuration file. It is very helpful if you are using a commercial certificate which has been issued by a commercial CA (Certificate Authority), including VeriSign, GlobalSign or RapidSSL. (In previous versions, you had to perform the editing task for the OpenVPN configuration file manually.) + +UI typos have been fixed, and some minor bugs have been fixed. + +SoftEther VPN 4.06 Build 9435 (Beta) (March 26, 2014) +Previous versions of VPN Client have a port-confliction problem of the TCP port (TCP 9930) for RPC (Remote Procedure Call) on the VPN Client service for Windows, if the same port is occupied by another service. This version has solved the confliction problem. + +SoftEther VPN 4.06 Build 9433 (Beta) (March 21, 2014) +Fixed a crashing bug on NAT-Traversal connections. +We sincerely apologize that the SoftEther VPN Server of the last build (Build 9432) has a serious crashing bug if a VPN client connects to the VPN Server in the NAT Traversal mode, in UNIX system. This serious bug was caused by the problem of the processing of Unicode string (which is used by a warning message for NAT Traversal connections). We fixed the serious bug by this Build 9433. If you are using SoftEther VPN Server Build 9430 or 9432 in UNIX, please update it to Build 9433 as soon as possible. + +SoftEther VPN 4.06 Build 9432 (Beta) (March 20, 2014) +We apologize that the previous build (Build 9430) has a problem that the RSA certificate authentication doesn't work. +This build has been fixed the problem. Please use Build 9432 if you are intending to use the RSA certificate authentication function. + +SoftEther VPN 4.06 Build 9430 (Beta) (March 20, 2014) +Thank you for waiting! +Added the following five advanced functions into SoftEther VPN Server (experimental) : +- RADIUS / NT Domain user authentication function +- RSA certificate user authentication function +- Deep-inspect packet logging function +- Source IP address control list function +- syslog transfer function + +Added the split-tunneling function (experimental) : +- Split tunneling is the function for enterprises to allow users communicate only to the specified IPv4 subnets through a VPN tunnel. +- You can set up either SecureNAT Virtual DHCP Server or any external DHCP server to push static routing tables to all VPN clients. +- The Virtual DHCP Server function in SecureNAT now supports classless static routing table pushing option (RFC 3442). +- All types of VPN clients (SoftEther VPN Client, OpenVPN Client, L2TP/IPsec client and MS-SSTP client) can receive the static routing table pushed. + +Added the function which allows the VPN server administrator to obtain the DDNS private key on the DDNS setup dialog-box. +Improved the behavior of the Privacy Filter Mode security policy. In the previous versions, a VPN session which is enabled the Privacy Filter Mode option cannot transmit any packets toward other Privacy Filter Mode enabled VPN sessions, except broadcast packets and ARP packets. On or after this version, both broadcast packets and ARP packets will also be blocked by the Privacy Filter Mode policy to eliminate the broadcast traffics. For the backward compatibility, this behavior can be changed by the "DropBroadcastsInPrivacyFilterMode" and "DropArpInPrivacyFilterMode" bool options on the Virtual Hub Extended Options. +Added the generating function of X.509 v3 certificates with the SHA-2 (SHA-256) hashing algorithm to improve the security. +According to the users reports, on very minor Linux environment, the "vpnserver stop" shutdown operation sometimes hangs up. The SoftEther VPN Project hasn't reproduce the issue yet. However, we added the fail-safe code to run "killall -KILL vpnserver" after the process shutdown operation times out (90 seconds). +Added the option to disable the NAT Traversal tunneling function on the connection settings screen in VPN Client and Cascade Connection. +Added Several Fixes for OS X. +Added Improved Simplified Chinese UI resources. +Added Workaround for when vpnserver hangs on stop on minor Linux environments. +On VPN Servers in People's Republic of China, the above five functions are currently disabled by default, under the orders from Beijing. Although Chinese users can enable these functions manually, Enterprise users in People's Republic of China are recommended to use these enterprise functions with PacketiX VPN Server 4.0 Chinese Edition. + +SoftEther VPN 4.05 Build 9423 (Beta) (February 18, 2014) +Added Files for building CentOS/RHEL RPM. +Set the "VPN over DNS" and "VPN over ICMP" functions disabled by default on VPN Server / VPN Bridge. + +SoftEther VPN 4.05 Build 9422 (Beta) (February 17, 2014) +Added the supporting of /hostname and /password command-line arguments on VPN Client. +Added the NSDI 6.x Lightweight Helper Kernel-mode Module for the local-bridge function. This kernel-mode driver runs only on Windows 8.1 / Windows Server 2012 R2 or later. + +SoftEther VPN 4.05 Build 9416 (Beta) (February 6, 2014) +Added the support for OpenBSD on the source code. +Added the debian packaging on the source code. +Added the adminip.txt CIDR support. +Added the supporting VLAN for Mac OS X using TunTapOSX. +Added the .zip package with vpnsmgr.exe and vpncmd.exe for system administrators. + +SoftEther VPN 4.04 Build 9412 (January 15, 2014) +Whole English UI texts are checked and corrected by a native speaker of English. Fixed typos. + +SoftEther VPN 4.03 Build 9411 (January 7, 2014) +Modified the source-code tree. In the build 9408, some C# build-utility source codes were missing. In this build, full set of all source codes including the BuildUtil program are appended. No functional differences between this build and the last build. + +SoftEther VPN 4.03 Build 9408 (Jaunary 4, 2014) +SoftEther VPN became open source software from this build. More details on this page. Note that the major version 3.xx was skipped for internal reason of our project. So this open-sourced new version starts with major version 4.xx. + +SoftEther VPN 2.00 Build 9387 (September 16, 2013) +This build realizes the compatibility with Microsoft Windows 8.1 and Windows Server 2012 R2 (RTM). This build supports Windows 8.1 and Windows Server 2012 R2 officially. This build fixes the former problem when the user upgrades from Windows 8 to Windows 8.1 by upgrade installation. +The major version number of SoftEther VPN was incremented on this build. + +SoftEther VPN 1.01 Build 9379 RTM (August 18, 2013) +This security update is to strengthen the security of SoftEther VPN 1.0 (Server and Bridge). +There is a remote administration function on SoftEther VPN 1.0. The function is to allow administrators to connect to the VPN server remotely to manage the server. In older versions, a third person can login to the VPN Server in the Virtual Hub Administration Mode if the administrator has forgot to set the administrator's password on a Virtual Hub. Older versions are also safe if any strong password is set on the Virtual Hub. However we suppose that there are some administrators who have forgot to set passwords for Virtual Hubs. In order to protect such potential vulnerable servers, this security update strengthens the VPN server program to deny all empty (not set) passwords on the Virtual Hub Administration Mode. Your VPN server has been safe also in older versions if you set any passwords for Virtual Hubs. However, we strongly recommend to apply this update program to all VPN server administrators who might have potential empty passwords on Virtual Hubs. + +SoftEther VPN 1.00 Build 9376, 9377 RTM (August 3, 2013) +This is a minor fix. +Improvement Stability of NAT Traversal. +Add HTTP User-Agent Indication Behavior when using VPN Gate Client. + +SoftEther VPN 1.00 Build 9371 RTM (July 25, 2013) +This is the RTM version of SoftEther VPN 1.0. It is not a BETA version. +We have fixed a lot of bugs in former builds. This RTM build is a stable build for everyone. +We will continue to improve features and performances on SoftEther VPN hereafter. + +SoftEther VPN 1.00 Build 9367 RC4 (July 21, 2013) +This should be the final beta release before the RTM version of SoftEther VPN 1.0. + +SoftEther VPN 1.00 Build 9091 RC3 (May 19, 2013) +We released RC3 with the following improvements. RC3 should be the final release candidate before the GA (Generally Available) build. +- Fixed a crush bug which might occurred during the shutdown of vpnserver process with using L2TPv3 or EtherIP over IPsec. +- The statistics of cumulative transferred-bytes and packets-counter are appended on the list of Visual Hubs and on the list of User Objects on each Virtual Hub, on VPN Server Manager and vpncmd. +- On the list of User Objects enumeration in both VPN Server Manager and vpncmd, the expire-date of each User Object are appended on the displayed list. +- Improvements of stability of Dynamic DNS Function and NAT-Traversal Function. + +SoftEther VPN 1.00 Build 9079 RC2 Fix17 (May 5, 2013) +Fixed a typo. Fixed a wrong bitmap image on the installer. + +SoftEther VPN 1.00 Build 9078 RC2 Fix16 (April 28, 2013) +A security fix. The previous versions have ignored the "deny_empty_password" option in the Virtual Hub Administration Options List. This build fixed this security bug. +Fixed some minor bugs. +Improvement of the respond-time on IPv6 DNS name resolver. + +SoftEther VPN 1.00 Build 9074 RC2 Fix15 (April 24, 2013) +Minor improvement around the Dynamic DNS Client function. + +SoftEther VPN 1.00 Build 9071 RC2 Fix14 (April 20, 2013) +Fixed a minor timeout bug. + +SoftEther VPN 1.00 Build 9070 RC2 Fix13 (April 18, 2013) +Enabled advanced security check routines for butter overflow (Win32 binaries only.) +File sizes have been increased a little, but the performance wasn't affected. + +SoftEther VPN 1.00 Build 9069 RC2 Fix12 (April 17, 2013) +Fixed a minor bug on SSL packet processing. +Fixed a miror bug on TCP listener. (very rare crash) + +SoftEther VPN 1.00 Build 9053 RC2 Fix11 (April 8, 2013) +Fixed a minor bug on UDP packet processing. +Added a new feature: IKE and OpenVPN (in UDP packets) Packet Logging Function. + +SoftEther VPN 1.00 Build 9045 RC2 Fix10 (April 2, 2013) +Fixed a minor bug, and improved the stability. + +SoftEther VPN 1.00 Build 9043 RC2 Fix9 (April 1, 2013) +Fixed a critical bug was in the HTTP packet parser. +Improvement of the stability of UDP-based communication. +Fixed a problem: SecureNAT's connectivity polling packet interval was too short. + +SoftEther VPN 1.00 Build 9035 RC2 Fix8 (March 26, 2013) +Fixed a crash bug: While you are changeing the X.509 server certificate, if a new SSL-VPN connection is being made, the new connection attempt will cause the crash because lack of critical section locking. However this bug was very rare. We found it in the heavy stress test. + +SoftEther VPN 1.00 Build 9033 RC2 Fix7 (March 22, 2013) +Fixed a minor bug. + +SoftEther VPN 1.00 Build 9030 RC2 Fix6 (March 21, 2013) +Fixed a bug: A logged error message around the L2TP/SSTP/OpenVPN user-authentication was incorrect. + +SoftEther VPN 1.00 Build 9029 RC2 Fix5 (March 17, 2013) +Fixed a minor bug and typo. + +SoftEther VPN 1.00 Build 9027 RC2 Fix4 (March 12, 2013) +Fixed a minor bug. + +SoftEther VPN 1.00 Build 9026 RC2 Fix3 (March 10, 2013) +Fixed a bug: the timeout to the DDNS server was too small. + +SoftEther VPN 1.00 Build 9024 RC2 Fix2 (March 09, 2013) +Fixed a bug: On Windows, VPN over DNS could not be enabled. + +SoftEther VPN 1.00 Build 9023 RC2 Fix1 (March 08, 2013) +Fixed a minor bug. + +SoftEther VPN 1.00 Build 9022 RC2 (March 08, 2013) +The initial release. diff --git a/ChangeLog.txt b/ChangeLog.txt deleted file mode 100644 index 910cf2f2..00000000 --- a/ChangeLog.txt +++ /dev/null @@ -1,10 +0,0 @@ -ChangeLog of SoftEther VPN --------------------------- - -The ChangeLog of SoftEther VPN is on our web site: -http://www.softether.org/5-download/history - -(In Japanese: http://ja.softether.org/5-download/history) - -Enjoy it! - diff --git a/LICENSE b/LICENSE index a919c97b..a93edd01 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 deleted file mode 100644 index a919c97b..00000000 --- a/LICENSE.TXT +++ /dev/null @@ -1,345 +0,0 @@ -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. -All Rights Reserved. -http://www.softether.org/ - -This program is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License version 2 as published by the Free -Software Foundation. - -This program is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License version 2 -along with this program; if not, write to the Free Software Foundation, Inc., -59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. -Neither the name of SoftEther nor the names of its contributors may be used to -endorse or promote products derived from this software without specific prior -written permission. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN, UNDER -JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY, MERGE, PUBLISH, -DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS SOFTWARE, THAT ANY -JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS SOFTWARE OR ITS CONTENTS, -AGAINST US (SOFTETHER PROJECT, SOFTETHER CORPORATION, DAIYUU NOBORI OR OTHER -SUPPLIERS), OR ANY JURIDICAL DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND -OF USING, COPYING, MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, -AND/OR SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND -CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO EXCLUSIVE -JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO, JAPAN. YOU MUST WAIVE -ALL DEFENSES OF LACK OF PERSONAL JURISDICTION AND FORUM NON CONVENIENS. -PROCESS MAY BE SERVED ON EITHER PARTY IN THE MANNER AUTHORIZED BY APPLICABLE -LAW OR COURT RULE. - -USE ONLY IN JAPAN. DO NOT USE THIS SOFTWARE IN ANOTHER COUNTRY UNLESS YOU HAVE -A CONFIRMATION THAT THIS SOFTWARE DOES NOT VIOLATE ANY CRIMINAL LAWS OR CIVIL -RIGHTS IN THAT PARTICULAR COUNTRY. USING THIS SOFTWARE IN OTHER COUNTRIES IS -COMPLETELY AT YOUR OWN RISK. THE SOFTETHER VPN PROJECT HAS DEVELOPED AND -DISTRIBUTED THIS SOFTWARE TO COMPLY ONLY WITH THE JAPANESE LAWS AND EXISTING -CIVIL RIGHTS INCLUDING PATENTS WHICH ARE SUBJECTS APPLY IN JAPAN. OTHER -COUNTRIES' LAWS OR CIVIL RIGHTS ARE NONE OF OUR CONCERNS NOR RESPONSIBILITIES. -WE HAVE NEVER INVESTIGATED ANY CRIMINAL REGULATIONS, CIVIL LAWS OR -INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENTS IN ANY OF OTHER 200+ COUNTRIES -AND TERRITORIES. BY NATURE, THERE ARE 200+ REGIONS IN THE WORLD, WITH -DIFFERENT LAWS. IT IS IMPOSSIBLE TO VERIFY EVERY COUNTRIES' LAWS, REGULATIONS -AND CIVIL RIGHTS TO MAKE THE SOFTWARE COMPLY WITH ALL COUNTRIES' LAWS BY THE -PROJECT. EVEN IF YOU WILL BE SUED BY A PRIVATE ENTITY OR BE DAMAGED BY A -PUBLIC SERVANT IN YOUR COUNTRY, THE DEVELOPERS OF THIS SOFTWARE WILL NEVER BE -LIABLE TO RECOVER OR COMPENSATE SUCH DAMAGES, CRIMINAL OR CIVIL -RESPONSIBILITIES. NOTE THAT THIS LINE IS NOT LICENSE RESTRICTION BUT JUST A -STATEMENT FOR WARNING AND DISCLAIMER. - -THE FOLLOWING GPLV2 CONDITIONS APPLY ON ALL SOFTETHER VPN PROGRAMS WHICH ARE -DEVELOPED BY SOFTETHER VPN PROJECT. - -READ AND UNDERSTAND THE 'WARNING.TXT' FILE BEFORE USING THIS SOFTWARE. -SOME SOFTWARE PROGRAMS FROM THIRD PARTIES ARE INCLUDED ON THIS SOFTWARE WITH -LICENSE CONDITIONS WHICH ARE DESCRIBED ON THE 'THIRD_PARTY.TXT' FILE. - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your freedom to -share and change it. By contrast, the GNU General Public License is intended -to guarantee your freedom to share and change free software--to make sure the -software is free for all its users. This General Public License applies to -most of the Free Software Foundation's software and to any other program whose -authors commit to using it. (Some other Free Software Foundation software is -covered by the GNU Lesser General Public License instead.) You can apply it -to your programs, too. - - When we speak of free software, we are referring to freedom, not price. Our -General Public Licenses are designed to make sure that you have the freedom to -distribute copies of free software (and charge for this service if you wish), -that you receive source code or can get it if you want it, that you can change -the software or use pieces of it in new free programs; and that you know you -can do these things. - - To protect your rights, we need to make restrictions that forbid anyone to -deny you these rights or to ask you to surrender the rights. These -restrictions translate to certain responsibilities for you if you distribute -copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether gratis or -for a fee, you must give the recipients all the rights that you have. You -must make sure that they, too, receive or can get the source code. And you -must show them these terms so they know their rights. - - We protect your rights with two steps: (1) copyright the software, and (2) -offer you this license which gives you legal permission to copy, distribute -and/or modify the software. - - Also, for each author's protection and ours, we want to make certain that -everyone understands that there is no warranty for this free software. If the -software is modified by someone else and passed on, we want its recipients to -know that what they have is not the original, so that any problems introduced -by others will not reflect on the original authors' reputations. - - Finally, any free program is threatened constantly by software patents. We -wish to avoid the danger that redistributors of a free program will -individually obtain patent licenses, in effect making the program proprietary. -To prevent this, we have made it clear that any patent must be licensed for -everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and modification -follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains a notice -placed by the copyright holder saying it may be distributed under the terms of -this General Public License. The "Program", below, refers to any such program -or work, and a "work based on the Program" means either the Program or any -derivative work under copyright law: that is to say, a work containing the -Program or a portion of it, either verbatim or with modifications and/or -translated into another language. (Hereinafter, translation is included -without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not covered -by this License; they are outside its scope. The act of running the Program -is not restricted, and the output from the Program is covered only if its -contents constitute a work based on the Program (independent of having been -made by running the Program). Whether that is true depends on what the Program -does. - - 1. You may copy and distribute verbatim copies of the Program's source code -as you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this License -and to the absence of any warranty; and give any other recipients of the -Program a copy of this License along with the Program. - -You may charge a fee for the physical act of transferring a copy, and you may -at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion of it, -thus forming a work based on the Program, and copy and distribute such -modifications or work under the terms of Section 1 above, provided that you -also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices stating -that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in whole -or in part contains or is derived from the Program or any part thereof, to be -licensed as a whole at no charge to all third parties under the terms of this -License. - - c) If the modified program normally reads commands interactively when run, -you must cause it, when started running for such interactive use in the most -ordinary way, to print or display an announcement including an appropriate -copyright notice and a notice that there is no warranty (or else, saying that -you provide a warranty) and that users may redistribute the program under -these conditions, and telling the user how to view a copy of this License. -(Exception: if the Program itself is interactive but does not normally print -such an announcement, your work based on the Program is not required to print -an announcement.) - -These requirements apply to the modified work as a whole. If identifiable -sections of that work are not derived from the Program, and can be reasonably -considered independent and separate works in themselves, then this License, -and its terms, do not apply to those sections when you distribute them as -separate works. But when you distribute the same sections as part of a whole -which is a work based on the Program, the distribution of the whole must be on -the terms of this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest your -rights to work written entirely by you; rather, the intent is to exercise the -right to control the distribution of derivative or collective works based on -the Program. - -In addition, mere aggregation of another work not based on the Program with -the Program (or with a work based on the Program) on a volume of a storage or -distribution medium does not bring the other work under the scope of this -License. - - 3. You may copy and distribute the Program (or a work based on it, under -Section 2) in object code or executable form under the terms of Sections 1 and -2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable source -code, which must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three years, to -give any third party, for a charge no more than your cost of physically -performing source distribution, a complete machine-readable copy of the -corresponding source code, to be distributed under the terms of Sections 1 and -2 above on a medium customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer to -distribute corresponding source code. (This alternative is allowed only for -noncommercial distribution and only if you received the program in object code -or executable form with such an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for making -modifications to it. For an executable work, complete source code means all -the source code for all modules it contains, plus any associated interface -definition files, plus the scripts used to control compilation and -installation of the executable. However, as a special exception, the source -code distributed need not include anything that is normally distributed (in -either source or binary form) with the major components (compiler, kernel, and -so on) of the operating system on which the executable runs, unless that -component itself accompanies the executable. - -If distribution of executable or object code is made by offering access to -copy from a designated place, then offering equivalent access to copy the -source code from the same place counts as distribution of the source code, -even though third parties are not compelled to copy the source along with the -object code. - - 4. You may not copy, modify, sublicense, or distribute the Program except as -expressly provided under this License. Any attempt otherwise to copy, modify, -sublicense or distribute the Program is void, and will automatically terminate -your rights under this License. However, parties who have received copies, or -rights, from you under this License will not have their licenses terminated so -long as such parties remain in full compliance. - - 5. You are not required to accept this License, since you have not signed -it. However, nothing else grants you permission to modify or distribute the -Program or its derivative works. These actions are prohibited by law if you -do not accept this License. Therefore, by modifying or distributing the -Program (or any work based on the Program), you indicate your acceptance of -this License to do so, and all its terms and conditions for copying, -distributing or modifying the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the original -licensor to copy, distribute or modify the Program subject to these terms and -conditions. You may not impose any further restrictions on the recipients' -exercise of the rights granted herein. You are not responsible for enforcing -compliance by third parties to this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or otherwise) -that contradict the conditions of this License, they do not excuse you from -the conditions of this License. If you cannot distribute so as to satisfy -simultaneously your obligations under this License and any other pertinent -obligations, then as a consequence you may not distribute the Program at all. -For example, if a patent license would not permit royalty-free redistribution -of the Program by all those who receive copies directly or indirectly through -you, then the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply and -the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents or -other property right claims or to contest validity of any such claims; this -section has the sole purpose of protecting the integrity of the free software -distribution system, which is implemented by public license practices. Many -people have made generous contributions to the wide range of software -distributed through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing to -distribute software through any other system and a licensee cannot impose that -choice. - -This section is intended to make thoroughly clear what is believed to be a -consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in certain -countries either by patents or by copyrighted interfaces, the original -copyright holder who places the Program under this License may add an explicit -geographical distribution limitation excluding those countries, so that -distribution is permitted only in or among countries not thus excluded. In -such case, this License incorporates the limitation as if written in the body -of this License. - - 9. The Free Software Foundation may publish revised and/or new versions of -the General Public License from time to time. Such new versions will be -similar in spirit to the present version, but may differ in detail to address -new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any later -version", you have the option of following the terms and conditions either of -that version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of this License, -you may choose any version ever published by the Free Software Foundation. - - 10. If you wish to incorporate parts of the Program into other free programs -whose distribution conditions are different, write to the author to ask for -permission. For software which is copyrighted by the Free Software -Foundation, write to the Free Software Foundation; we sometimes make -exceptions for this. Our decision will be guided by the two goals of -preserving the free status of all derivatives of our free software and of -promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR -THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE -STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE -PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND -PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, -YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO -LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR -THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - -READ AND UNDERSTAND THE 'WARNING.TXT' FILE BEFORE USING THIS SOFTWARE. -SOME SOFTWARE PROGRAMS FROM THIRD PARTIES ARE INCLUDED ON THIS SOFTWARE WITH -LICENSE CONDITIONS WHICH ARE DESCRIBED ON THE 'THIRD_PARTY.TXT' FILE. - diff --git a/README b/README index 9e4efff0..5ab03f00 100644 --- a/README +++ b/README @@ -1,16 +1,27 @@ -SoftEther VPN - An Open-Source Cross-platform Multi-protocol VPN Program +SoftEther VPN (Developer Edition Master 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/ +This repository has experimental codes. Pull requests are welcome. -Source code packages (.zip and .tar.gz) and binary files are also available: +Stable Edition is available on +https://github.com/SoftEtherVPN/SoftEtherVPN_Stable +which the non-developer user can stable use. + +Source code packages (.zip and .tar.gz) and binary files of Stable Edition are also available: 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 Ministry of Economy, Trade and Industry of Japan, +administrated by Information Promotion Agency. +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 @@ -123,24 +134,9 @@ 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/ - - 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/ - We hope that you can reach one of the above URLs at least! @@ -218,10 +214,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 deleted file mode 100644 index 9e4efff0..00000000 --- a/README.TXT +++ /dev/null @@ -1,227 +0,0 @@ -SoftEther VPN - 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/ - -Source code packages (.zip and .tar.gz) and binary files are also available: -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. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License version 2 -as published by the Free Software Foundation. - -SoftEther VPN ("SoftEther" means "Software Ethernet") is one of the -world's most powerful and easy-to-use multi-protocol VPN software. - -SoftEther VPN runs on Windows, Linux, Mac, FreeBSD and Solaris. - -SoftEther VPN supports most of widely-used VPN protocols -including SSL-VPN, OpenVPN, IPsec, L2TP, MS-SSTP, L2TPv3 and EtherIP -by the single SoftEther VPN Server program. - -More details on http://www.softether.org/. - - -SOFTETHER VPN ADVANTAGES ------------------------- - -- Supporting all popular VPN protocols by the single VPN server: - SSL-VPN (HTTPS) - OpenVPN - IPsec - L2TP - MS-SSTP - L2TPv3 - EtherIP -- Free and open-source software. -- Easy to establish both remote-access and site-to-site VPN. -- SSL-VPN Tunneling on HTTPS to pass through NATs and firewalls. -- Revolutionary VPN over ICMP and VPN over DNS features. -- Resistance to highly-restricted firewall. -- Ethernet-bridging (L2) and IP-routing (L3) over VPN. -- Embedded dynamic-DNS and NAT-traversal so that no static nor - fixed IP address is required. -- AES 256-bit and RSA 4096-bit encryptions. -- Sufficient security features such as logging and firewall inner - VPN tunnel. -- User authentication with RADIUS and NT domain controllers. -- User authentication with X.509 client certificate. -- Packet logging. -- 1Gbps-class high-speed throughput performance with low memory and - CPU usage. -- Windows, Linux, Mac, Android, iPhone, iPad and Windows Phone are - supported. -- The OpenVPN clone function supports legacy OpenVPN clients. -- IPv4 / IPv6 dual-stack. -- The VPN server runs on Windows, Linux, FreeBSD, Solaris and Mac OS X. -- Configure All settings on GUI. -- Multi-languages (English, Japanese and Simplified-Chinese). -- No memory leaks. High quality stable codes, intended for long-term runs. - We always verify that there are no memory or resource leaks before - releasing the build. -- More details at http://www.softether.org/. - - -GETTING STARTED ---------------- - -Visit the SoftEther VPN Project official web site at first: - http://www.softether.org/ - -If you are not a developer, it is recommended to download the binary -installers from: - http://www.softether-download.com/ - -To build from the source, -see "BUILD_UNIX.TXT" or "BUILD_WINDOWS.TXT" files. - - -HOW TO DOWNLOAD THE LATEST SOURCE CODE PACKAGE ----------------------------------------------- - -Go to http://www.softether-download.com/ and you can find the latest -source-code package file in both .ZIP and .TAR.GZ format. - -This is the easiest way to obtain the source code of SoftEther VPN. - - -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/ - -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 -$ cd SoftEtherVPN -$ ./configure -$ make -$ make install - - -TO CIRCUMVENT YOUR GOVERNMENT'S FIREWALL RESTRICTION ----------------------------------------------------- - -Because SoftEther VPN is overly strong tool to build a VPN tunnel, -some censorship governments want to block your access to the source code -of SoftEther VPN, by abusing their censorship firewalls. - -To circumvent your censor's unjust restriction, -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/ - - -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/ - -We hope that you can reach one of the above URLs at least! - - -SOURCE CODE CONTRIBUTION ------------------------- - -Your contribution to SoftEther VPN Project is much appreciated. -Please send patches to us through GitHub. -Read the SoftEther VPN Patch Acceptance Policy in advance: -http://www.softether.org/5-download/src/9.patch - - -DEAR SECURITY EXPERTS ---------------------- - -If you find a bug or a security vulnerability please kindly inform us -about the problem immediately so that we can fix the security problem -to protect a lot of users around the world as soon as possible. - -Our e-mail address for security reports is: -softether-vpn-security [at] softether.org - -Please note that the above e-mail address is not a technical support -inquiry address. If you need technical assistance, please visit -http://www.softether.org/ and ask your question on the users forum. - - -DISCLAIMER ----------- - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN, -UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY, -MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS -SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS -SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER -CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL -DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING, -MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR -SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND -CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO -EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO, -JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION -AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN -THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE. - -USE ONLY IN JAPAN. DO NOT USE THIS SOFTWARE IN ANOTHER COUNTRY UNLESS -YOU HAVE A CONFIRMATION THAT THIS SOFTWARE DOES NOT VIOLATE ANY -CRIMINAL LAWS OR CIVIL RIGHTS IN THAT PARTICULAR COUNTRY. USING THIS -SOFTWARE IN OTHER COUNTRIES IS COMPLETELY AT YOUR OWN RISK. THE -SOFTETHER VPN PROJECT HAS DEVELOPED AND DISTRIBUTED THIS SOFTWARE TO -COMPLY ONLY WITH THE JAPANESE LAWS AND EXISTING CIVIL RIGHTS INCLUDING -PATENTS WHICH ARE SUBJECTS APPLY IN JAPAN. OTHER COUNTRIES' LAWS OR -CIVIL RIGHTS ARE NONE OF OUR CONCERNS NOR RESPONSIBILITIES. WE HAVE -NEVER INVESTIGATED ANY CRIMINAL REGULATIONS, CIVIL LAWS OR -INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENTS IN ANY OF OTHER 200+ -COUNTRIES AND TERRITORIES. BY NATURE, THERE ARE 200+ REGIONS IN THE -WORLD, WITH DIFFERENT LAWS. IT IS IMPOSSIBLE TO VERIFY EVERY -COUNTRIES' LAWS, REGULATIONS AND CIVIL RIGHTS TO MAKE THE SOFTWARE -COMPLY WITH ALL COUNTRIES' LAWS BY THE PROJECT. EVEN IF YOU WILL BE -SUED BY A PRIVATE ENTITY OR BE DAMAGED BY A PUBLIC SERVANT IN YOUR -COUNTRY, THE DEVELOPERS OF THIS SOFTWARE WILL NEVER BE LIABLE TO -RECOVER OR COMPENSATE SUCH DAMAGES, CRIMINAL OR CIVIL -RESPONSIBILITIES. NOTE THAT THIS LINE IS NOT LICENSE RESTRICTION BUT -JUST A STATEMENT FOR WARNING AND DISCLAIMER. - -READ AND UNDERSTAND THE 'WARNING.TXT' FILE BEFORE USING THIS SOFTWARE. -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/THIRD_PARTY.TXT b/THIRD_PARTY.TXT index 50e42ade..7dba27e3 100644 --- a/THIRD_PARTY.TXT +++ b/THIRD_PARTY.TXT @@ -722,65 +722,3 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Issue Date: Aug 6, 2010 -------------------- - -NOTES WRITTEN BY SOFTETHER CORPORATION - -Note for users of non-Windows version of PacketiX VPN: The enumerated bundle -of License Agreements above are copies of original License Agreements of each -library programs which PacketiX VPN uses. PacketiX VPN is not a delivered work -from these libraries. PacketiX VPN is a separated work from the libraries, but -it may call functions of the libraries (whether or not PacketiX VPN calls such -functions are depended on the user's intention to link them or not on user's -side computer). While some libraries indicate GPL or LGPL as a condition to -re-distribute, PacketiX VPN is not license under GPL nor LGPL. Therefore, we -took special care not to make PacketiX VPN become delivered works of any GPL -or LGPL libraries. In order to achieve that, both PacketiX VPN and GPL/LGPL -libraries are distributed with isolated forms (means that any program files of -PacketiX VPN are not bound nor linked to any GPL/LGPL libraries). If a user of -PacketiX VPN wants to link GPL/LGPL libraries by their own decisions, -operations and responsibilities, he may do that on his computer. However, if a -delivered work under copyright law is created as a result of such an -operation, such a delivered work must not re-distributed to other people, -because it may violate GPL/LGPL libraries' conditions. - -Note for users of Windows version of PacketiX VPN: For technical reason, the -above texts are exactly same as a file which is also contained on the -non-Windows version of PacketiX VPN. Actually, the Windows version of PacketiX -VPN has no relations to any GPL/LGPL libraries enumerated above. - -SoftEther Corporation provides source codes of some GPL/LGPL/other libraries -listed above on its web server. Anyone can download, use and re-distribute -them under individual licenses which are contained on each archive file, -available from the following URL: -http://uploader.softether.co.jp/src/ - -------------------- - -Copyright Notes and Acknowledgments for PacketiX VPN (Commercial Version): - -PacketiX VPN has some contributed codes from SoftEther VPN Project -(http://www.softether.org/). -These contributed codes have been granted by contributors to be imported into -the PacketiX VPN source-tree without GPLv2 conditions. - -The list of contributors for SoftEther VPN Project: - - - Melvyn - https://github.com/yaurthek - - - nattoheaven - https://github.com/nattoheaven - - - ELIN - https://github.com/el1n - - - YF - https://github.com/yfdyh000 - - -SoftEther Corporation, the distributor of PacketiX VPN, appreciates all -contributors for SoftEther VPN Project very much. - -See also: http://www.softether.org/5-download/src/9.patch - diff --git a/WARNING.TXT b/WARNING.TXT index ebb373a7..01c37e0a 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 cfcb41dd..684b8ab1 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 43b7940e..f6550719 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 30ee02a0..ba8e1f73 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 9dba653c..db9e81fc 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 8026117e..2233f002 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 3a146ae5..8b815579 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 13539808..cf203711 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 02229f50..7ebbc494 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 0203bcaa..84e322db 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 faaa37cf..53b98f42 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 122e4df1..ccc2f69d 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 bb47762f..1327f4eb 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 168d3885..a3c712b6 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 d969ffa4..5451fbee 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/BuildFiles/VerScript/ver.rc b/src/BuildFiles/VerScript/ver.rc index 1d937b5e..34f8aecb 100644 --- a/src/BuildFiles/VerScript/ver.rc +++ b/src/BuildFiles/VerScript/ver.rc @@ -12,14 +12,14 @@ BEGIN BEGIN BLOCK "041104b0" BEGIN - VALUE "CompanyName", "SoftEther VPN Project at University of Tsukuba, Japan. (Open-source Customized Build)" - VALUE "FileDescription", "$PRODUCTNAME$ (Open-source Customized Build)" + VALUE "CompanyName", "SoftEther VPN Project at University of Tsukuba, Japan. (Developer Edition)" + VALUE "FileDescription", "$PRODUCTNAME$ (Developer Edition)" VALUE "FileVersion", "$VER_MAJOR$, $VER_MINOR$, 0, $VER_BUILD$" - VALUE "InternalName", "$INTERNALNAME$ (Open-source Customized Build)" - VALUE "LegalCopyright", "Copyright (C) 2012-$YEAR$ SoftEther VPN Project. All Rights Reserved. (Open-source Customized Build)" + VALUE "InternalName", "$INTERNALNAME$ (Developer Edition)" + VALUE "LegalCopyright", "Copyright (C) 2012-$YEAR$ SoftEther VPN Project. All Rights Reserved. (Developer Edition)" VALUE "LegalTrademarks", "SoftEther(R) is a registered trademark of SoftEther Corporation in Japan, United Status and People's Republic of China. SoftEther Corporation is a company founded at University of Tsukuba, Japan." VALUE "OriginalFilename", "$FILENAME$" - VALUE "ProductName", "$PRODUCTNAME$ (Open-source Customized Build)" + VALUE "ProductName", "$PRODUCTNAME$ (Developer Edition)" VALUE "ProductVersion", "$VER_MAJOR$, $VER_MINOR$, 0, $VER_BUILD$" END END diff --git a/src/BuildUtil/BuildUtilCommands.cs b/src/BuildUtil/BuildUtilCommands.cs index 78d19edd..96c5d523 100644 --- a/src/BuildUtil/BuildUtilCommands.cs +++ b/src/BuildUtil/BuildUtilCommands.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 e1e2f68a..79d62e0a 100644 --- a/src/BuildUtil/BuildUtilMain.cs +++ b/src/BuildUtil/BuildUtilMain.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 0f1dcc34..82ffb674 100644 --- a/src/BuildUtil/CodeSign.cs +++ b/src/BuildUtil/CodeSign.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 c188c0e5..4afcd2e4 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 a14da441..8aa4e4f4 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 85d653af..d8a5c37f 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 f3bdf872..8ba48f30 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 2997266f..07204d13 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 a67fc8cd..8147cd4e 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 a75611d9..38be4707 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 d5d47a6b..52787a5f 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 f775a75f..e3eecd42 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 a52c5019..19dbaf87 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 b45abc42..e938e5fa 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 4ea38eaa..7818df18 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 824f9bec..c14b18c5 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 f8d27ca7..b50a2249 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 a98ca716..85df9fba 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 087d9c06..457ce1fc 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 32ccc062..3c4c88a7 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 3f5d56e5..8d1f16b4 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 3b64fa44..0c4dd877 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 e8dd1a1a..19c1ffb1 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 7aa28cd5..d1d5b0a2 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 a1c2c645..19c094f0 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 32afefcf..f8727a4f 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 71e1e61a..4c605845 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 1f31fbb1..6fef810b 100644 --- a/src/BuildUtil/PEUtil.cs +++ b/src/BuildUtil/PEUtil.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 06e2fc3a..13dc1f9b 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 eb98cd2d..e17f4720 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 34e32050..780f4f2b 100644 --- a/src/BuildUtil/Test.cs +++ b/src/BuildUtil/Test.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 c29ddec9..8a5e232f 100644 --- a/src/BuildUtil/UnixBuildSoftwares.cs +++ b/src/BuildUtil/UnixBuildSoftwares.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 8cc574bf..b1b63f58 100644 --- a/src/BuildUtil/VpnBuilder.cs +++ b/src/BuildUtil/VpnBuilder.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 10eb8c17..474ba304 100644 --- a/src/BuildUtil/VpnBuilderConfig.cs +++ b/src/BuildUtil/VpnBuilderConfig.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -138,7 +138,7 @@ namespace BuildUtil // Build settings public static class BuildConfig { - public static readonly int NumMultipleCompileTasks = 4; + public static readonly int NumMultipleCompileTasks = 1; } // Software List @@ -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 e5542726..ba190f53 100644 --- a/src/BuildUtil/VpnBuilderConfigTypes.cs +++ b/src/BuildUtil/VpnBuilderConfigTypes.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 2d5056c2..33921979 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 24e39186..fe838f44 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 dee3dfd6..dcf2586b 100644 --- a/src/BuildUtil/Win32BuildSoftware.cs +++ b/src/BuildUtil/Win32BuildSoftware.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 54f987a6..a6172f15 100644 --- a/src/BuildUtil/Win32BuildUtil.cs +++ b/src/BuildUtil/Win32BuildUtil.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 b1940002..a3ebd33f 100644 --- a/src/Cedar/Account.c +++ b/src/Cedar/Account.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 2a323de1..2c5ee586 100644 --- a/src/Cedar/Account.h +++ b/src/Cedar/Account.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 4d45178a..0173afd6 100644 --- a/src/Cedar/Admin.c +++ b/src/Cedar/Admin.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 78990570..04968a8a 100644 --- a/src/Cedar/Admin.h +++ b/src/Cedar/Admin.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 5e0bb8d5..447c6abd 100644 --- a/src/Cedar/AzureClient.c +++ b/src/Cedar/AzureClient.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 00485b50..ac246205 100644 --- a/src/Cedar/AzureClient.h +++ b/src/Cedar/AzureClient.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 b40831be..f050dc46 100644 --- a/src/Cedar/AzureServer.c +++ b/src/Cedar/AzureServer.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 2a110935..e09d7fcf 100644 --- a/src/Cedar/AzureServer.h +++ b/src/Cedar/AzureServer.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 48289a67..6bf4f732 100644 --- a/src/Cedar/Bridge.c +++ b/src/Cedar/Bridge.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 31303979..e4f9a0fa 100644 --- a/src/Cedar/Bridge.h +++ b/src/Cedar/Bridge.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 6ef16e58..7d272742 100644 --- a/src/Cedar/BridgeUnix.c +++ b/src/Cedar/BridgeUnix.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 5460a2b3..7f9b0890 100644 --- a/src/Cedar/BridgeUnix.h +++ b/src/Cedar/BridgeUnix.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 4b4ab43a..653b0bc5 100644 --- a/src/Cedar/BridgeWin32.c +++ b/src/Cedar/BridgeWin32.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 e6344ced..ba67e014 100644 --- a/src/Cedar/BridgeWin32.h +++ b/src/Cedar/BridgeWin32.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 18acf425..d85559ae 100644 --- a/src/Cedar/CM.c +++ b/src/Cedar/CM.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 c7e2bfcd..072a6b2a 100644 --- a/src/Cedar/CM.h +++ b/src/Cedar/CM.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 874ce35d..b789df46 100644 --- a/src/Cedar/CMInner.h +++ b/src/Cedar/CMInner.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 49841778..04d0556b 100644 --- a/src/Cedar/Cedar.c +++ b/src/Cedar/Cedar.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 e7ae9dc0..bc15b32f 100644 --- a/src/Cedar/Cedar.h +++ b/src/Cedar/Cedar.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 419 +#define CEDAR_VER 423 // Build Number -#define CEDAR_BUILD 9599 +#define CEDAR_BUILD 9647 // 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 "pc37" #endif // BUILD_PLACE // Specifies the build date -#define BUILD_DATE_Y 2015 +#define BUILD_DATE_Y 2017 #define BUILD_DATE_M 10 #define BUILD_DATE_D 19 -#define BUILD_DATE_HO 20 -#define BUILD_DATE_MI 9 -#define BUILD_DATE_SE 5 +#define BUILD_DATE_HO 14 +#define BUILD_DATE_MI 28 +#define BUILD_DATE_SE 18 // 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 c84d7379..6a306a99 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 8a3f49c3..8c6d3a4d 100644 --- a/src/Cedar/CedarPch.c +++ b/src/Cedar/CedarPch.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 a8201cb1..298d0a83 100644 --- a/src/Cedar/CedarPch.h +++ b/src/Cedar/CedarPch.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 1f3579a5..7ae8fd9f 100644 --- a/src/Cedar/CedarType.h +++ b/src/Cedar/CedarType.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 6e95df27..63af4c77 100644 --- a/src/Cedar/Client.c +++ b/src/Cedar/Client.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 c3f1ed7d..263036ed 100644 --- a/src/Cedar/Client.h +++ b/src/Cedar/Client.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 95054cf5..76b2a3cc 100644 --- a/src/Cedar/Command.c +++ b/src/Cedar/Command.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 330140c9..6708fc92 100644 --- a/src/Cedar/Command.h +++ b/src/Cedar/Command.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 224afb37..fc98dc28 100644 --- a/src/Cedar/Connection.c +++ b/src/Cedar/Connection.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 eeecb200..e96ff8ff 100644 --- a/src/Cedar/Connection.h +++ b/src/Cedar/Connection.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 7db51568..ba2ec285 100644 --- a/src/Cedar/Console.c +++ b/src/Cedar/Console.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 d77f2b11..a5001968 100644 --- a/src/Cedar/Console.h +++ b/src/Cedar/Console.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 200da922..447a2313 100644 --- a/src/Cedar/DDNS.c +++ b/src/Cedar/DDNS.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -624,8 +624,9 @@ UINT DCRegister(DDNS_CLIENT *c, bool ipv6, DDNS_REGISTER_PARAM *p, char *replace PackAddInt(req, "lasterror_ipv4", c->Err_IPv4_GetMyIp); PackAddInt(req, "lasterror_ipv6", c->Err_IPv6_GetMyIp); PackAddBool(req, "use_azure", use_azure); - PackAddStr(req, "product_str", CEDAR_PRODUCT_STR); + PackAddStr(req, "product_str", "SoftEther OSS"); PackAddInt(req, "ddns_protocol_version", DDNS_VERSION); + PackAddInt(req, "ddns_oss", 1); if (use_azure) @@ -670,9 +671,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 +878,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 +1047,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 c1403e2a..f7138fca 100644 --- a/src/Cedar/DDNS.h +++ b/src/Cedar/DDNS.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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,11 +115,18 @@ #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" -#define DDNS_URL_V6_GLOBAL "https://x%c.x%c.servers-v6.ddns.softether-network.net/ddns/ddns.aspx" +#define DDNS_URL_V4_GLOBAL "https://x%c.x%c.dev.servers.ddns.softether-network.net/ddns/ddns.aspx" +#define DDNS_URL_V6_GLOBAL "https://x%c.x%c.dev.servers-v6.ddns.softether-network.net/ddns/ddns.aspx" #define DDNS_URL2_V4_GLOBAL "http://get-my-ip.ddns.softether-network.net/ddns/getmyip.ashx" #define DDNS_URL2_V6_GLOBAL "http://get-my-ip-v6.ddns.softether-network.net/ddns/getmyip.ashx" @@ -132,8 +139,8 @@ #define DDNS_REPLACE_URL2_FOR_WEST_NGN "http://senet.p-ns.flets-west.jp/ddns/getmyip.ashx" // For China: Free version -#define DDNS_URL_V4_ALT "https://x%c.x%c.servers.ddns.uxcom.jp/ddns/ddns.aspx" -#define DDNS_URL_V6_ALT "https://x%c.x%c.servers-v6.ddns.uxcom.jp/ddns/ddns.aspx" +#define DDNS_URL_V4_ALT "https://x%c.x%c.dev.servers.ddns.uxcom.jp/ddns/ddns.aspx" +#define DDNS_URL_V6_ALT "https://x%c.x%c.dev.servers-v6.ddns.uxcom.jp/ddns/ddns.aspx" #define DDNS_URL2_V4_ALT "http://get-my-ip.ddns.uxcom.jp/ddns/getmyip.ashx" #define DDNS_URL2_V6_ALT "http://get-my-ip-v6.ddns.uxcom.jp/ddns/getmyip.ashx" @@ -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 12ae6ac3..7cd721f4 100644 --- a/src/Cedar/Database.c +++ b/src/Cedar/Database.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 564644ec..651ba0e2 100644 --- a/src/Cedar/Database.h +++ b/src/Cedar/Database.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 1bb71a91..58719a4b 100644 --- a/src/Cedar/EM.c +++ b/src/Cedar/EM.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 6724862c..812e3d4a 100644 --- a/src/Cedar/EM.h +++ b/src/Cedar/EM.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 57008993..7c2fcbcd 100644 --- a/src/Cedar/EMInner.h +++ b/src/Cedar/EMInner.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 81bd4cf1..5c65b2d1 100644 --- a/src/Cedar/EtherLog.c +++ b/src/Cedar/EtherLog.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 2a17b48b..beb707f6 100644 --- a/src/Cedar/EtherLog.h +++ b/src/Cedar/EtherLog.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 97d88611..221754c1 100644 --- a/src/Cedar/Hub.c +++ b/src/Cedar/Hub.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 385c2758..7def47bb 100644 --- a/src/Cedar/Hub.h +++ b/src/Cedar/Hub.h @@ -3,15 +3,15 @@ // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 535c044d..b9530a48 100644 --- a/src/Cedar/IPsec.c +++ b/src/Cedar/IPsec.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -795,7 +795,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 82283bfe..29fde830 100644 --- a/src/Cedar/IPsec.h +++ b/src/Cedar/IPsec.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 6551e8ab..15dde766 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 309ccbbc..3b94104a 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 3999709a..84055774 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 0b8ec2b0..183f95fa 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 108e7b6c..7bd5d7e5 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 ef040958..f65a053e 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 0abe8514..eda8f17d 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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++) { 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 b8191069..ba0bb686 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 ba5eb9b6..3a930f37 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -2709,7 +2709,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 2ee94656..ae5d20b5 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 aff359c4..5482c53e 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -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 7c60aa93..58f94519 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 7abf33e6..85dbfc9f 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 343aa615..bd489e70 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 21d86fd4..2036aeca 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 69f50109..91715729 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -3021,7 +3021,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 cef7b883..f4320104 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 9dddf31a..a929aaa7 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 3df6e534..f6579a23 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 36bece80..eae37895 100644 --- a/src/Cedar/Layer3.c +++ b/src/Cedar/Layer3.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 66c9981a..d4ca9d04 100644 --- a/src/Cedar/Layer3.h +++ b/src/Cedar/Layer3.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 e1741ae9..8f2a543b 100644 --- a/src/Cedar/Link.c +++ b/src/Cedar/Link.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 a88b572b..a2b7202a 100644 --- a/src/Cedar/Link.h +++ b/src/Cedar/Link.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 78645085..55dc49db 100644 --- a/src/Cedar/Listener.c +++ b/src/Cedar/Listener.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -1110,7 +1110,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 a720eb5d..808c97d1 100644 --- a/src/Cedar/Listener.h +++ b/src/Cedar/Listener.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 42e89558..e6241bc6 100644 --- a/src/Cedar/Logging.c +++ b/src/Cedar/Logging.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -1396,22 +1396,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); + } } } @@ -3001,7 +3017,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 997a9f52..65131af5 100644 --- a/src/Cedar/Logging.h +++ b/src/Cedar/Logging.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 b092ca66..8490f554 100644 --- a/src/Cedar/NM.c +++ b/src/Cedar/NM.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 b1791976..39be93bb 100644 --- a/src/Cedar/NM.h +++ b/src/Cedar/NM.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 2326ee70..d762ca64 100644 --- a/src/Cedar/NMInner.h +++ b/src/Cedar/NMInner.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 ed5f219f..59d0d8a0 100644 --- a/src/Cedar/Nat.c +++ b/src/Cedar/Nat.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 24b8169e..9fdcaa66 100644 --- a/src/Cedar/Nat.h +++ b/src/Cedar/Nat.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 59361251..f3f89e8c 100644 --- a/src/Cedar/NativeStack.c +++ b/src/Cedar/NativeStack.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 8fd21488..7e84175c 100644 --- a/src/Cedar/NativeStack.h +++ b/src/Cedar/NativeStack.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 8db702a5..fe274d44 100644 --- a/src/Cedar/NullLan.c +++ b/src/Cedar/NullLan.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 dc1a1e79..63b3b886 100644 --- a/src/Cedar/NullLan.h +++ b/src/Cedar/NullLan.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 08f531bf..9a59bf18 100644 --- a/src/Cedar/Protocol.c +++ b/src/Cedar/Protocol.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -6477,12 +6455,15 @@ SOCK *ClientConnectGetSocket(CONNECTION *c, bool additional_connect, bool no_tls UINT nat_t_err = 0; bool is_additonal_rudp_session = false; UCHAR uc = 0; + IP ret_ip; // Validate arguments if (c == NULL) { return NULL; } + Zero(&ret_ip, sizeof(IP)); + sess = c->Session; if (sess != NULL) @@ -6495,12 +6476,25 @@ SOCK *ClientConnectGetSocket(CONNECTION *c, bool additional_connect, bool no_tls o = c->Session->ClientOption; + if (additional_connect) + { + if (sess != NULL) + { + Copy(&ret_ip, &sess->ServerIP_CacheForNextConnect, sizeof(IP)); + } + } + if (c->RestoreServerNameAndPort && additional_connect) { // Restore to the original server name and port number c->RestoreServerNameAndPort = false; - StrCpy(c->ServerName, sizeof(c->ServerName), o->Hostname); + if (StrCmpi(c->ServerName, o->Hostname) != 0) + { + StrCpy(c->ServerName, sizeof(c->ServerName), o->Hostname); + Zero(&ret_ip, sizeof(IP)); + } + c->ServerPort = o->Port; } @@ -6520,7 +6514,7 @@ SOCK *ClientConnectGetSocket(CONNECTION *c, bool additional_connect, bool no_tls // If additional_connect == true, follow the IsRUDPSession setting in this session s = TcpIpConnectEx(host_for_direct_connection, port_for_direct_connection, (bool *)cancel_flag, hWnd, &nat_t_err, (additional_connect ? (!is_additonal_rudp_session) : false), - true, no_tls); + true, no_tls, &ret_ip); } } else @@ -6585,9 +6579,9 @@ SOCK *ClientConnectGetSocket(CONNECTION *c, bool additional_connect, bool no_tls // SOCKS connection - s = SocksConnectEx(c, host_for_direct_connection, port_for_direct_connection, + s = SocksConnectEx2(c, host_for_direct_connection, port_for_direct_connection, c->ServerName, c->ServerPort, o->ProxyUsername, - additional_connect, (bool *)cancel_flag, hWnd); + additional_connect, (bool *)cancel_flag, hWnd, 0, &ret_ip); if (s == NULL) { // Connection failure @@ -6612,6 +6606,19 @@ SOCK *ClientConnectGetSocket(CONNECTION *c, bool additional_connect, bool no_tls Copy(&c->Session->ServerIP, &s->RemoteIP, sizeof(IP)); } } + + if (IsZeroIP(&ret_ip) == false) + { + if (c->Session != NULL) + { + if (additional_connect == false) + { + Copy(&c->Session->ServerIP_CacheForNextConnect, &ret_ip, sizeof(IP)); + + Debug("Saved ServerIP_CacheForNextConnect: %s = %r\n", c->ServerName, &ret_ip); + } + } + } } return s; @@ -6632,12 +6639,12 @@ SOCK *SocksConnectEx(CONNECTION *c, char *proxy_host_name, UINT proxy_port, { return SocksConnectEx2(c, proxy_host_name, proxy_port, server_host_name, server_port, username, additional_connect, cancel_flag, - hWnd, 0); + hWnd, 0, NULL); } SOCK *SocksConnectEx2(CONNECTION *c, char *proxy_host_name, UINT proxy_port, char *server_host_name, UINT server_port, char *username, bool additional_connect, - bool *cancel_flag, void *hWnd, UINT timeout) + bool *cancel_flag, void *hWnd, UINT timeout, IP *ret_ip) { SOCK *s = NULL; IP ip; @@ -6665,7 +6672,7 @@ SOCK *SocksConnectEx2(CONNECTION *c, char *proxy_host_name, UINT proxy_port, } // Connection - s = TcpConnectEx3(proxy_host_name, proxy_port, timeout, cancel_flag, hWnd, true, NULL, false, false); + s = TcpConnectEx3(proxy_host_name, proxy_port, timeout, cancel_flag, hWnd, true, NULL, false, false, ret_ip); if (s == NULL) { // Failure @@ -6869,7 +6876,7 @@ SOCK *ProxyConnectEx2(CONNECTION *c, char *proxy_host_name, UINT proxy_port, } // Connection - s = TcpConnectEx3(proxy_host_name, proxy_port, timeout, cancel_flag, hWnd, true, NULL, false, false); + s = TcpConnectEx3(proxy_host_name, proxy_port, timeout, cancel_flag, hWnd, true, NULL, false, false, NULL); if (s == NULL) { // Failure @@ -7021,15 +7028,15 @@ SOCK *ProxyConnectEx2(CONNECTION *c, char *proxy_host_name, UINT proxy_port, // TCP connection function SOCK *TcpConnectEx2(char *hostname, UINT port, UINT timeout, bool *cancel_flag, void *hWnd, bool try_start_ssl, bool ssl_no_tls) { - return TcpConnectEx3(hostname, port, timeout, cancel_flag, hWnd, false, NULL, try_start_ssl, ssl_no_tls); + return TcpConnectEx3(hostname, port, timeout, cancel_flag, hWnd, false, NULL, try_start_ssl, ssl_no_tls, NULL); } -SOCK *TcpConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, void *hWnd, bool no_nat_t, UINT *nat_t_error_code, bool try_start_ssl, bool ssl_no_tls) +SOCK *TcpConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, void *hWnd, bool no_nat_t, UINT *nat_t_error_code, bool try_start_ssl, bool ssl_no_tls, IP *ret_ip) { #ifdef OS_WIN32 if (hWnd == NULL) { #endif // OS_WIN32 - return ConnectEx3(hostname, port, timeout, cancel_flag, (no_nat_t ? NULL : VPN_RUDP_SVC_NAME), nat_t_error_code, try_start_ssl, ssl_no_tls, true); + return ConnectEx4(hostname, port, timeout, cancel_flag, (no_nat_t ? NULL : VPN_RUDP_SVC_NAME), nat_t_error_code, try_start_ssl, ssl_no_tls, true, ret_ip); #ifdef OS_WIN32 } else @@ -7042,9 +7049,9 @@ SOCK *TcpConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, // Connect with TCP/IP SOCK *TcpIpConnect(char *hostname, UINT port, bool try_start_ssl, bool ssl_no_tls) { - return TcpIpConnectEx(hostname, port, NULL, NULL, NULL, false, try_start_ssl, ssl_no_tls); + return TcpIpConnectEx(hostname, port, NULL, NULL, NULL, false, try_start_ssl, ssl_no_tls, NULL); } -SOCK *TcpIpConnectEx(char *hostname, UINT port, bool *cancel_flag, void *hWnd, UINT *nat_t_error_code, bool no_nat_t, bool try_start_ssl, bool ssl_no_tls) +SOCK *TcpIpConnectEx(char *hostname, UINT port, bool *cancel_flag, void *hWnd, UINT *nat_t_error_code, bool no_nat_t, bool try_start_ssl, bool ssl_no_tls, IP *ret_ip) { SOCK *s = NULL; UINT dummy_int = 0; @@ -7059,7 +7066,7 @@ SOCK *TcpIpConnectEx(char *hostname, UINT port, bool *cancel_flag, void *hWnd, U return NULL; } - s = TcpConnectEx3(hostname, port, 0, cancel_flag, hWnd, no_nat_t, nat_t_error_code, try_start_ssl, ssl_no_tls); + s = TcpConnectEx3(hostname, port, 0, cancel_flag, hWnd, no_nat_t, nat_t_error_code, try_start_ssl, ssl_no_tls, ret_ip); if (s == NULL) { return NULL; @@ -7304,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 ef7eb29e..406d3777 100644 --- a/src/Cedar/Protocol.h +++ b/src/Cedar/Protocol.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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" @@ -218,7 +218,7 @@ bool ServerAccept(CONNECTION *c); bool ClientConnect(CONNECTION *c); SOCK *ClientConnectToServer(CONNECTION *c); SOCK *TcpIpConnect(char *hostname, UINT port, bool try_start_ssl, bool ssl_no_tls); -SOCK *TcpIpConnectEx(char *hostname, UINT port, bool *cancel_flag, void *hWnd, UINT *nat_t_error_code, bool no_nat_t, bool try_start_ssl, bool ssl_no_tls); +SOCK *TcpIpConnectEx(char *hostname, UINT port, bool *cancel_flag, void *hWnd, UINT *nat_t_error_code, bool no_nat_t, bool try_start_ssl, bool ssl_no_tls, IP *ret_ip); bool ClientUploadSignature(SOCK *s); bool ClientDownloadHello(CONNECTION *c, SOCK *s); bool ServerDownloadSignature(CONNECTION *c, char **error_detail_str); @@ -226,7 +226,7 @@ bool ServerUploadHello(CONNECTION *c); bool ClientUploadAuth(CONNECTION *c); SOCK *ClientConnectGetSocket(CONNECTION *c, bool additional_connect, bool no_tls); SOCK *TcpConnectEx2(char *hostname, UINT port, UINT timeout, bool *cancel_flag, void *hWnd, bool try_start_ssl, bool ssl_no_tls); -SOCK *TcpConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, void *hWnd, bool no_nat_t, UINT *nat_t_error_code, bool try_start_ssl, bool ssl_no_tls); +SOCK *TcpConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, void *hWnd, bool no_nat_t, UINT *nat_t_error_code, bool try_start_ssl, bool ssl_no_tls, IP *ret_ip); void InitProtocol(); void FreeProtocol(); @@ -280,7 +280,7 @@ SOCK *SocksConnectEx(CONNECTION *c, char *proxy_host_name, UINT proxy_port, SOCK *SocksConnectEx2(CONNECTION *c, char *proxy_host_name, UINT proxy_port, char *server_host_name, UINT server_port, char *username, bool additional_connect, - bool *cancel_flag, void *hWnd, UINT timeout); + bool *cancel_flag, void *hWnd, UINT timeout, IP *ret_ip); bool SocksSendRequestPacket(CONNECTION *c, SOCK *s, UINT dest_port, IP *dest_ip, char *userid); bool SocksRecvResponsePacket(CONNECTION *c, SOCK *s); void CreateNodeInfo(NODE_INFO *info, CONNECTION *c); @@ -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 bff039d0..c4a41df7 100644 --- a/src/Cedar/Radius.c +++ b/src/Cedar/Radius.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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; @@ -1833,7 +1839,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 +1896,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 +1952,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 +2412,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 31b041bd..a2d0dde6 100644 --- a/src/Cedar/Radius.h +++ b/src/Cedar/Radius.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 93455603..85189dfd 100644 --- a/src/Cedar/Remote.c +++ b/src/Cedar/Remote.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 2c5491e7..819c7502 100644 --- a/src/Cedar/Remote.h +++ b/src/Cedar/Remote.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 dc954042..e5ef35ab 100644 --- a/src/Cedar/SM.c +++ b/src/Cedar/SM.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 53785a12..c256fb9c 100644 --- a/src/Cedar/SM.h +++ b/src/Cedar/SM.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 cc2322b1..6e54bfc0 100644 --- a/src/Cedar/SMInner.h +++ b/src/Cedar/SMInner.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -112,18 +112,18 @@ // The internal header of SM.c // Constants -#define SM_REG_KEY "Software\\SoftEther Corporation\\PacketiX VPN\\Server Manager" -#define SM_CERT_REG_KEY "Software\\SoftEther Corporation\\PacketiX VPN\\Server Manager\\Cert Tool" -#define SM_SETTING_REG_KEY "Software\\SoftEther Corporation\\PacketiX VPN\\Server Manager\\Settings" -#define SM_LASTHUB_REG_KEY "Software\\SoftEther Corporation\\PacketiX VPN\\Server Manager\\Last HUB Name" -#define SM_HIDE_CERT_UPDATE_MSG_KEY "Software\\SoftEther Corporation\\PacketiX VPN\\Server Manager\\Hide Cert Update Msg" +#define SM_REG_KEY "Software\\SoftEther VPN Developer Edition\\SoftEther VPN\\Server Manager" +#define SM_CERT_REG_KEY "Software\\SoftEther VPN Developer Edition\\SoftEther VPN\\Server Manager\\Cert Tool" +#define SM_SETTING_REG_KEY "Software\\SoftEther VPN Developer Edition\\SoftEther VPN\\Server Manager\\Settings" +#define SM_LASTHUB_REG_KEY "Software\\SoftEther VPN Developer Edition\\SoftEther VPN\\Server Manager\\Last HUB Name" +#define SM_HIDE_CERT_UPDATE_MSG_KEY "Software\\SoftEther VPN Developer Edition\\SoftEther VPN\\Server Manager\\Hide Cert Update Msg" #define NAME_OF_VPN_SERVER_MANAGER "vpnsmgr" #define NAME_OF_VPN_SERVER_TARGET "vpnserver@%s" #define NAME_OF_VPN_BRIDGE_TARGET "vpnbridge@%s" // Constants (Old value) -#define SM_SETTING_REG_KEY_OLD "Software\\SoftEther Corporation\\SoftEther VPN 2.0\\Server Manager\\Settings" +#define SM_SETTING_REG_KEY_OLD "Software\\SoftEther Corporation\\PacketiX VPN\\Server Manager\\Settings" // Connection setting typedef struct SETTING @@ -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 0db28f5e..f9ae9b9a 100644 --- a/src/Cedar/SW.c +++ b/src/Cedar/SW.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -5859,9 +5859,6 @@ void SwUiMain(SW *sw) GetCedarVersion(ver, sizeof(ver)); UniFormat(verstr, sizeof(verstr), _UU("SW_TITLE"), ver); - // DO NOT REMOVE THIS INDICATION !!! - UniStrCat(verstr, sizeof(verstr), L" - Customized Version"); - w = NewWizard(ICO_SETUP, BMP_SELOGO49x49, verstr, sw); w->CloseConfirmMsg = _UU("SW_EXIT_CONFIRM"); @@ -6677,7 +6674,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 e42e250f..ed1d2c18 100644 --- a/src/Cedar/SW.h +++ b/src/Cedar/SW.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 c56c3caa..86ede1a0 100644 --- a/src/Cedar/SWInner.h +++ b/src/Cedar/SWInner.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 d9872163..2eabfe53 100644 --- a/src/Cedar/Sam.c +++ b/src/Cedar/Sam.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 effbd702..bd099dc5 100644 --- a/src/Cedar/Sam.h +++ b/src/Cedar/Sam.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 74dd756d..1e47e5e4 100644 --- a/src/Cedar/SeLowUser.c +++ b/src/Cedar/SeLowUser.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // SeLow: SoftEther Lightweight Network Protocol // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 a40d9c0f..97cd5500 100644 --- a/src/Cedar/SeLowUser.h +++ b/src/Cedar/SeLowUser.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // SeLow: SoftEther Lightweight Network Protocol // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 b81e86e9..490cedd0 100644 --- a/src/Cedar/SecureInfo.c +++ b/src/Cedar/SecureInfo.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 1a7b3b20..55b9d1e0 100644 --- a/src/Cedar/SecureInfo.h +++ b/src/Cedar/SecureInfo.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 ee583a46..aab4fcaf 100644 --- a/src/Cedar/SecureNAT.c +++ b/src/Cedar/SecureNAT.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 07190601..6dddfd89 100644 --- a/src/Cedar/SecureNAT.h +++ b/src/Cedar/SecureNAT.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 b6899514..80f03d42 100644 --- a/src/Cedar/Server.c +++ b/src/Cedar/Server.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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){ + GetDateTimeStrRFC3164(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"); @@ -6157,7 +6172,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); @@ -6467,10 +6495,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); } @@ -7544,6 +7577,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"); @@ -9396,6 +9431,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); @@ -11043,7 +11080,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 febff109..41f2ccd0 100644 --- a/src/Cedar/Server.h +++ b/src/Cedar/Server.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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" @@ -369,6 +369,7 @@ struct SERVER volatile UINT NatTGlobalUdpPort; // NAT-T global UDP port IP ListenIP; // Listen IP + bool StrictSyslogDatetimeFormat; // Make syslog datetime format strict RFC3164 }; @@ -750,7 +751,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 78b11613..5475485a 100644 --- a/src/Cedar/Session.c +++ b/src/Cedar/Session.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -1492,6 +1492,8 @@ void ClientThread(THREAD *t, void *param) while (true) { + Zero(&s->ServerIP_CacheForNextConnect, sizeof(IP)); + if (s->Link != NULL && ((*s->Link->StopAllLinkFlag) || s->Link->Halting)) { s->Err = ERR_USER_CANCEL; @@ -2482,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 8ed0d07a..10b23281 100644 --- a/src/Cedar/Session.h +++ b/src/Cedar/Session.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -234,6 +234,8 @@ struct SESSION UCHAR IpcMacAddress[6]; // MAC address for IPC UCHAR Padding[2]; + IP ServerIP_CacheForNextConnect; // Server IP, cached for next connect + UINT64 CreatedTime; // Creation date and time UINT64 LastCommTime; // Last communication date and time UINT64 LastCommTimeForDormant; // Last communication date and time (for dormant) @@ -441,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 286b1322..7c97bb9c 100644 --- a/src/Cedar/UT.c +++ b/src/Cedar/UT.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 e8b35e32..51877e94 100644 --- a/src/Cedar/UT.h +++ b/src/Cedar/UT.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 789c5fc7..90be6645 100644 --- a/src/Cedar/UdpAccel.c +++ b/src/Cedar/UdpAccel.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 3ce16c6d..cebaecf9 100644 --- a/src/Cedar/UdpAccel.h +++ b/src/Cedar/UdpAccel.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 925f3033..bbe5d0a0 100644 --- a/src/Cedar/VG.c +++ b/src/Cedar/VG.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 828bbb65..eecc22c5 100644 --- a/src/Cedar/VG.h +++ b/src/Cedar/VG.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 1e83029e..d1469c41 100644 --- a/src/Cedar/VLan.c +++ b/src/Cedar/VLan.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 0e5b7339..251a1d4d 100644 --- a/src/Cedar/VLan.h +++ b/src/Cedar/VLan.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 f2d0e9e9..bc37aca8 100644 --- a/src/Cedar/VLanUnix.c +++ b/src/Cedar/VLanUnix.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 63fbe993..aafa3824 100644 --- a/src/Cedar/VLanUnix.h +++ b/src/Cedar/VLanUnix.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 1b27c87f..2c9cf913 100644 --- a/src/Cedar/VLanWin32.c +++ b/src/Cedar/VLanWin32.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 ae90a526..914d60d1 100644 --- a/src/Cedar/VLanWin32.h +++ b/src/Cedar/VLanWin32.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 01aee77e..9dfbac7a 100644 --- a/src/Cedar/Virtual.c +++ b/src/Cedar/Virtual.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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); } @@ -2386,7 +2386,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 +2393,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 +3999,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 +4204,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 +5435,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 +5447,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 +5477,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 +5499,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 @@ -10409,7 +10421,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 e638df64..e86e07f0 100644 --- a/src/Cedar/Virtual.h +++ b/src/Cedar/Virtual.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -698,7 +698,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 db2cdbb8..88c98e58 100644 --- a/src/Cedar/WaterMark.c +++ b/src/Cedar/WaterMark.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 372c3dce..8764b2bb 100644 --- a/src/Cedar/WaterMark.h +++ b/src/Cedar/WaterMark.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 efdc1c0f..3edbe90c 100644 --- a/src/Cedar/WebUI.c +++ b/src/Cedar/WebUI.c @@ -1,11 +1,11 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 c6c73065..ccb1d5b3 100644 --- a/src/Cedar/WebUI.h +++ b/src/Cedar/WebUI.h @@ -1,11 +1,11 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 6ad26288..c7791fc2 100644 --- a/src/Cedar/Win32Com.cpp +++ b/src/Cedar/Win32Com.cpp @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 5fd01932..00831d7f 100644 --- a/src/Cedar/Win32Com.h +++ b/src/Cedar/Win32Com.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 750c50ae..af658717 100644 --- a/src/Cedar/WinJumpList.cpp +++ b/src/Cedar/WinJumpList.cpp @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 0bf99f79..b70dd70b 100644 --- a/src/Cedar/WinUi.c +++ b/src/Cedar/WinUi.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -460,7 +460,11 @@ WINUI_UPDATE *InitUpdateUi(wchar_t *title, char *name, char *family_name, UINT64 // Validate arguments if (title == NULL || name == NULL || current_build == 0 || current_ver == 0) { - return NULL; + return NULL; + } + if (MsIsWine()) + { + return false; } if (IsEmptyStr(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 b6fabc5a..7df52898 100644 --- a/src/Cedar/WinUi.h +++ b/src/Cedar/WinUi.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 27fa5617..cddfd383 100644 --- a/src/Cedar/Wpc.c +++ b/src/Cedar/Wpc.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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); @@ -609,7 +623,7 @@ SOCK *WpcSockConnectEx(WPC_CONNECT *param, UINT *error_code, UINT timeout, bool switch (param->ProxyType) { case PROXY_DIRECT: - sock = TcpConnectEx3(param->HostName, param->Port, timeout, cancel, NULL, true, NULL, false, false); + sock = TcpConnectEx3(param->HostName, param->Port, timeout, cancel, NULL, true, NULL, false, false, NULL); if (sock == NULL) { err = ERR_CONNECT_FAILED; @@ -629,7 +643,7 @@ SOCK *WpcSockConnectEx(WPC_CONNECT *param, UINT *error_code, UINT timeout, bool case PROXY_SOCKS: sock = SocksConnectEx2(&c, param->ProxyHostName, param->ProxyPort, param->HostName, param->Port, - param->ProxyUsername, false, cancel, NULL, timeout); + param->ProxyUsername, false, cancel, NULL, timeout, NULL); if (sock == NULL) { err = c.Err; @@ -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)); @@ -758,7 +790,7 @@ BUF *HttpRequestEx2(URL_DATA *data, INTERNET_SETTING *setting, else { // If the connection is not SSL via HTTP Proxy - s = TcpConnectEx3(con.ProxyHostName, con.ProxyPort, timeout_connect, cancel, NULL, true, NULL, false, false); + s = TcpConnectEx3(con.ProxyHostName, con.ProxyPort, timeout_connect, cancel, NULL, true, NULL, false, false, NULL); if (s == NULL) { *error_code = ERR_PROXY_CONNECT_FAILED; @@ -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 4c5d6508..99bf4cb4 100644 --- a/src/Cedar/Wpc.h +++ b/src/Cedar/Wpc.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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/ChangeLog.txt b/src/ChangeLog.txt deleted file mode 100644 index 910cf2f2..00000000 --- a/src/ChangeLog.txt +++ /dev/null @@ -1,10 +0,0 @@ -ChangeLog of SoftEther VPN --------------------------- - -The ChangeLog of SoftEther VPN is on our web site: -http://www.softether.org/5-download/history - -(In Japanese: http://ja.softether.org/5-download/history) - -Enjoy it! - diff --git a/src/CurrentBuild.txt b/src/CurrentBuild.txt index 4554475a..3d90a6de 100644 --- a/src/CurrentBuild.txt +++ b/src/CurrentBuild.txt @@ -1,4 +1,4 @@ -BUILD_NUMBER 9599 -VERSION 419 +BUILD_NUMBER 9650 +VERSION 424 BUILD_NAME beta -BUILD_DATE 20151019_200905 +BUILD_DATE 20171019_142818 diff --git a/src/GlobalConst.h b/src/GlobalConst.h index 3ad6d32c..2ba06c54 100644 --- a/src/GlobalConst.h +++ b/src/GlobalConst.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Global Constants Header // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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,60 +122,56 @@ #define CEDAR_PRODUCT_STR "SoftEther" #define CEDAR_PRODUCT_STR_W L"SoftEther" -#define CEDAR_SERVER_STR "SoftEther VPN Server" -#define CEDAR_BRIDGE_STR "SoftEther VPN Bridge" -#define CEDAR_BETA_SERVER "SoftEther VPN Server Pre Release" -#define CEDAR_MANAGER_STR "SoftEther VPN Server Manager" +#define CEDAR_SERVER_STR "SoftEther VPN Server Developer Edition" +#define CEDAR_BRIDGE_STR "SoftEther VPN Bridge Developer Edition" +#define CEDAR_BETA_SERVER "SoftEther VPN Server Pre Release Developer Edition" +#define CEDAR_MANAGER_STR "SoftEther VPN Server Manager Developer Edition" #define CEDAR_CUI_STR "SoftEther VPN Command-Line Admin Tool" -#define CEDAR_ELOG "SoftEther EtherLogger" -#define CEDAR_CLIENT_STR "SoftEther VPN Client" -#define CEDAR_CLIENT_MANAGER_STR "SoftEther VPN Client Connection Manager" -#define CEDAR_ROUTER_STR "SoftEther VPN User-mode Router" -#define CEDAR_SERVER_LINK_STR "SoftEther VPN Server (Cascade Mode)" -#define CEDAR_BRIDGE_LINK_STR "SoftEther VPN Bridge (Cascade Mode)" -#define CEDAR_SERVER_FARM_STR "SoftEther VPN Server (Cluster RPC Mode)" +#define CEDAR_ELOG "SoftEther EtherLogger Developer Edition" +#define CEDAR_CLIENT_STR "SoftEther VPN Client Developer Edition" +#define CEDAR_CLIENT_MANAGER_STR "SoftEther VPN Client Connection Manager Developer Edition" +#define CEDAR_ROUTER_STR "SoftEther VPN User-mode Router Developer Edition" +#define CEDAR_SERVER_LINK_STR "SoftEther VPN Server Developer Edition (Cascade Mode)" +#define CEDAR_BRIDGE_LINK_STR "SoftEther VPN Bridge Developer Edition (Cascade Mode)" +#define CEDAR_SERVER_FARM_STR "SoftEther VPN Server Developer Edition (Cluster RPC Mode)" //// Default Port Number #define GC_DEFAULT_PORT 5555 -#define GC_CLIENT_CONFIG_PORT 9930 -#define GC_CLIENT_NOTIFY_PORT 9983 +#define GC_CLIENT_CONFIG_PORT 9931 +#define GC_CLIENT_NOTIFY_PORT 9984 //// Software Name -#define GC_SVC_NAME_VPNSERVER "SEVPNSERVER" -#define GC_SVC_NAME_VPNCLIENT "SEVPNCLIENT" -#define GC_SVC_NAME_VPNBRIDGE "SEVPNBRIDGE" +#define GC_SVC_NAME_VPNSERVER "SEVPNSERVERDEV" +#define GC_SVC_NAME_VPNCLIENT "SEVPNCLIENTDEV" +#define GC_SVC_NAME_VPNBRIDGE "SEVPNBRIDGEDEV" //// Registry -#define GC_REG_COMPANY_NAME "SoftEther Project" +#define GC_REG_COMPANY_NAME "SoftEther VPN Developer Edition" //// Setup Wizard -#define GC_SW_UIHELPER_REGVALUE "SoftEther VPN Client UI Helper" -#define GC_SW_SOFTETHER_PREFIX "se" -#define GC_SW_SOFTETHER_PREFIX_W L"se" +#define GC_SW_UIHELPER_REGVALUE "SoftEther VPN Client UI Helper Developer Edition" +#define GC_SW_SOFTETHER_PREFIX "sedev" +#define GC_SW_SOFTETHER_PREFIX_W L"sedev" //// VPN UI Components -#define GC_UI_APPID_CM L"SoftEther.SoftEther VPN Client" +#define GC_UI_APPID_CM L"SoftEther.SoftEther VPN Client Developer Edition" #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 0cf4a043..c4529f71 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 deleted file mode 100644 index a919c97b..00000000 --- a/src/LICENSE.TXT +++ /dev/null @@ -1,345 +0,0 @@ -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. -All Rights Reserved. -http://www.softether.org/ - -This program is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License version 2 as published by the Free -Software Foundation. - -This program is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License version 2 -along with this program; if not, write to the Free Software Foundation, Inc., -59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. -Neither the name of SoftEther nor the names of its contributors may be used to -endorse or promote products derived from this software without specific prior -written permission. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN, UNDER -JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY, MERGE, PUBLISH, -DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS SOFTWARE, THAT ANY -JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS SOFTWARE OR ITS CONTENTS, -AGAINST US (SOFTETHER PROJECT, SOFTETHER CORPORATION, DAIYUU NOBORI OR OTHER -SUPPLIERS), OR ANY JURIDICAL DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND -OF USING, COPYING, MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, -AND/OR SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND -CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO EXCLUSIVE -JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO, JAPAN. YOU MUST WAIVE -ALL DEFENSES OF LACK OF PERSONAL JURISDICTION AND FORUM NON CONVENIENS. -PROCESS MAY BE SERVED ON EITHER PARTY IN THE MANNER AUTHORIZED BY APPLICABLE -LAW OR COURT RULE. - -USE ONLY IN JAPAN. DO NOT USE THIS SOFTWARE IN ANOTHER COUNTRY UNLESS YOU HAVE -A CONFIRMATION THAT THIS SOFTWARE DOES NOT VIOLATE ANY CRIMINAL LAWS OR CIVIL -RIGHTS IN THAT PARTICULAR COUNTRY. USING THIS SOFTWARE IN OTHER COUNTRIES IS -COMPLETELY AT YOUR OWN RISK. THE SOFTETHER VPN PROJECT HAS DEVELOPED AND -DISTRIBUTED THIS SOFTWARE TO COMPLY ONLY WITH THE JAPANESE LAWS AND EXISTING -CIVIL RIGHTS INCLUDING PATENTS WHICH ARE SUBJECTS APPLY IN JAPAN. OTHER -COUNTRIES' LAWS OR CIVIL RIGHTS ARE NONE OF OUR CONCERNS NOR RESPONSIBILITIES. -WE HAVE NEVER INVESTIGATED ANY CRIMINAL REGULATIONS, CIVIL LAWS OR -INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENTS IN ANY OF OTHER 200+ COUNTRIES -AND TERRITORIES. BY NATURE, THERE ARE 200+ REGIONS IN THE WORLD, WITH -DIFFERENT LAWS. IT IS IMPOSSIBLE TO VERIFY EVERY COUNTRIES' LAWS, REGULATIONS -AND CIVIL RIGHTS TO MAKE THE SOFTWARE COMPLY WITH ALL COUNTRIES' LAWS BY THE -PROJECT. EVEN IF YOU WILL BE SUED BY A PRIVATE ENTITY OR BE DAMAGED BY A -PUBLIC SERVANT IN YOUR COUNTRY, THE DEVELOPERS OF THIS SOFTWARE WILL NEVER BE -LIABLE TO RECOVER OR COMPENSATE SUCH DAMAGES, CRIMINAL OR CIVIL -RESPONSIBILITIES. NOTE THAT THIS LINE IS NOT LICENSE RESTRICTION BUT JUST A -STATEMENT FOR WARNING AND DISCLAIMER. - -THE FOLLOWING GPLV2 CONDITIONS APPLY ON ALL SOFTETHER VPN PROGRAMS WHICH ARE -DEVELOPED BY SOFTETHER VPN PROJECT. - -READ AND UNDERSTAND THE 'WARNING.TXT' FILE BEFORE USING THIS SOFTWARE. -SOME SOFTWARE PROGRAMS FROM THIRD PARTIES ARE INCLUDED ON THIS SOFTWARE WITH -LICENSE CONDITIONS WHICH ARE DESCRIBED ON THE 'THIRD_PARTY.TXT' FILE. - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your freedom to -share and change it. By contrast, the GNU General Public License is intended -to guarantee your freedom to share and change free software--to make sure the -software is free for all its users. This General Public License applies to -most of the Free Software Foundation's software and to any other program whose -authors commit to using it. (Some other Free Software Foundation software is -covered by the GNU Lesser General Public License instead.) You can apply it -to your programs, too. - - When we speak of free software, we are referring to freedom, not price. Our -General Public Licenses are designed to make sure that you have the freedom to -distribute copies of free software (and charge for this service if you wish), -that you receive source code or can get it if you want it, that you can change -the software or use pieces of it in new free programs; and that you know you -can do these things. - - To protect your rights, we need to make restrictions that forbid anyone to -deny you these rights or to ask you to surrender the rights. These -restrictions translate to certain responsibilities for you if you distribute -copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether gratis or -for a fee, you must give the recipients all the rights that you have. You -must make sure that they, too, receive or can get the source code. And you -must show them these terms so they know their rights. - - We protect your rights with two steps: (1) copyright the software, and (2) -offer you this license which gives you legal permission to copy, distribute -and/or modify the software. - - Also, for each author's protection and ours, we want to make certain that -everyone understands that there is no warranty for this free software. If the -software is modified by someone else and passed on, we want its recipients to -know that what they have is not the original, so that any problems introduced -by others will not reflect on the original authors' reputations. - - Finally, any free program is threatened constantly by software patents. We -wish to avoid the danger that redistributors of a free program will -individually obtain patent licenses, in effect making the program proprietary. -To prevent this, we have made it clear that any patent must be licensed for -everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and modification -follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains a notice -placed by the copyright holder saying it may be distributed under the terms of -this General Public License. The "Program", below, refers to any such program -or work, and a "work based on the Program" means either the Program or any -derivative work under copyright law: that is to say, a work containing the -Program or a portion of it, either verbatim or with modifications and/or -translated into another language. (Hereinafter, translation is included -without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not covered -by this License; they are outside its scope. The act of running the Program -is not restricted, and the output from the Program is covered only if its -contents constitute a work based on the Program (independent of having been -made by running the Program). Whether that is true depends on what the Program -does. - - 1. You may copy and distribute verbatim copies of the Program's source code -as you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this License -and to the absence of any warranty; and give any other recipients of the -Program a copy of this License along with the Program. - -You may charge a fee for the physical act of transferring a copy, and you may -at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion of it, -thus forming a work based on the Program, and copy and distribute such -modifications or work under the terms of Section 1 above, provided that you -also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices stating -that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in whole -or in part contains or is derived from the Program or any part thereof, to be -licensed as a whole at no charge to all third parties under the terms of this -License. - - c) If the modified program normally reads commands interactively when run, -you must cause it, when started running for such interactive use in the most -ordinary way, to print or display an announcement including an appropriate -copyright notice and a notice that there is no warranty (or else, saying that -you provide a warranty) and that users may redistribute the program under -these conditions, and telling the user how to view a copy of this License. -(Exception: if the Program itself is interactive but does not normally print -such an announcement, your work based on the Program is not required to print -an announcement.) - -These requirements apply to the modified work as a whole. If identifiable -sections of that work are not derived from the Program, and can be reasonably -considered independent and separate works in themselves, then this License, -and its terms, do not apply to those sections when you distribute them as -separate works. But when you distribute the same sections as part of a whole -which is a work based on the Program, the distribution of the whole must be on -the terms of this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest your -rights to work written entirely by you; rather, the intent is to exercise the -right to control the distribution of derivative or collective works based on -the Program. - -In addition, mere aggregation of another work not based on the Program with -the Program (or with a work based on the Program) on a volume of a storage or -distribution medium does not bring the other work under the scope of this -License. - - 3. You may copy and distribute the Program (or a work based on it, under -Section 2) in object code or executable form under the terms of Sections 1 and -2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable source -code, which must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three years, to -give any third party, for a charge no more than your cost of physically -performing source distribution, a complete machine-readable copy of the -corresponding source code, to be distributed under the terms of Sections 1 and -2 above on a medium customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer to -distribute corresponding source code. (This alternative is allowed only for -noncommercial distribution and only if you received the program in object code -or executable form with such an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for making -modifications to it. For an executable work, complete source code means all -the source code for all modules it contains, plus any associated interface -definition files, plus the scripts used to control compilation and -installation of the executable. However, as a special exception, the source -code distributed need not include anything that is normally distributed (in -either source or binary form) with the major components (compiler, kernel, and -so on) of the operating system on which the executable runs, unless that -component itself accompanies the executable. - -If distribution of executable or object code is made by offering access to -copy from a designated place, then offering equivalent access to copy the -source code from the same place counts as distribution of the source code, -even though third parties are not compelled to copy the source along with the -object code. - - 4. You may not copy, modify, sublicense, or distribute the Program except as -expressly provided under this License. Any attempt otherwise to copy, modify, -sublicense or distribute the Program is void, and will automatically terminate -your rights under this License. However, parties who have received copies, or -rights, from you under this License will not have their licenses terminated so -long as such parties remain in full compliance. - - 5. You are not required to accept this License, since you have not signed -it. However, nothing else grants you permission to modify or distribute the -Program or its derivative works. These actions are prohibited by law if you -do not accept this License. Therefore, by modifying or distributing the -Program (or any work based on the Program), you indicate your acceptance of -this License to do so, and all its terms and conditions for copying, -distributing or modifying the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the original -licensor to copy, distribute or modify the Program subject to these terms and -conditions. You may not impose any further restrictions on the recipients' -exercise of the rights granted herein. You are not responsible for enforcing -compliance by third parties to this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or otherwise) -that contradict the conditions of this License, they do not excuse you from -the conditions of this License. If you cannot distribute so as to satisfy -simultaneously your obligations under this License and any other pertinent -obligations, then as a consequence you may not distribute the Program at all. -For example, if a patent license would not permit royalty-free redistribution -of the Program by all those who receive copies directly or indirectly through -you, then the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply and -the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents or -other property right claims or to contest validity of any such claims; this -section has the sole purpose of protecting the integrity of the free software -distribution system, which is implemented by public license practices. Many -people have made generous contributions to the wide range of software -distributed through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing to -distribute software through any other system and a licensee cannot impose that -choice. - -This section is intended to make thoroughly clear what is believed to be a -consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in certain -countries either by patents or by copyrighted interfaces, the original -copyright holder who places the Program under this License may add an explicit -geographical distribution limitation excluding those countries, so that -distribution is permitted only in or among countries not thus excluded. In -such case, this License incorporates the limitation as if written in the body -of this License. - - 9. The Free Software Foundation may publish revised and/or new versions of -the General Public License from time to time. Such new versions will be -similar in spirit to the present version, but may differ in detail to address -new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any later -version", you have the option of following the terms and conditions either of -that version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of this License, -you may choose any version ever published by the Free Software Foundation. - - 10. If you wish to incorporate parts of the Program into other free programs -whose distribution conditions are different, write to the author to ask for -permission. For software which is copyrighted by the Free Software -Foundation, write to the Free Software Foundation; we sometimes make -exceptions for this. Our decision will be guided by the two goals of -preserving the free status of all derivatives of our free software and of -promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR -THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE -STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE -PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND -PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, -YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO -LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR -THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - -READ AND UNDERSTAND THE 'WARNING.TXT' FILE BEFORE USING THIS SOFTWARE. -SOME SOFTWARE PROGRAMS FROM THIRD PARTIES ARE INCLUDED ON THIS SOFTWARE WITH -LICENSE CONDITIONS WHICH ARE DESCRIBED ON THE 'THIRD_PARTY.TXT' FILE. - diff --git a/src/Mayaqua/Cfg.c b/src/Mayaqua/Cfg.c index 4f3181f2..5805fd7f 100644 --- a/src/Mayaqua/Cfg.c +++ b/src/Mayaqua/Cfg.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 ffaac0fb..d1172480 100644 --- a/src/Mayaqua/Cfg.h +++ b/src/Mayaqua/Cfg.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 c4a83ad9..143069dd 100644 --- a/src/Mayaqua/Encrypt.c +++ b/src/Mayaqua/Encrypt.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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(ctx)); + Zero(ctx_tmp, sizeof(ctx_tmp)); +#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; @@ -2083,6 +2005,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 +2073,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; @@ -2236,6 +2157,7 @@ bool AddX509Name(void *xn, int nid, wchar_t *str) X509_NAME *x509_name; UINT utf8_size; BYTE *utf8; + int encoding_type = MBSTRING_ASC; // Validate arguments if (xn == NULL || str == NULL) { @@ -2252,11 +2174,16 @@ bool AddX509Name(void *xn, int nid, wchar_t *str) UniToUtf8(utf8, utf8_size, str); utf8[utf8_size] = 0; + if (StrLen(utf8) != UniStrLen(str)) + { + encoding_type = MBSTRING_UTF8; + } + // Adding x509_name = (X509_NAME *)xn; Lock(openssl_lock); { - X509_NAME_add_entry_by_NID(x509_name, nid, MBSTRING_ASC, utf8, utf8_size, -1, 0); + X509_NAME_add_entry_by_NID(x509_name, nid, encoding_type, utf8, utf8_size, -1, 0); } Unlock(openssl_lock); Free(utf8); @@ -2354,8 +2281,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 @@ -2507,6 +2434,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]; @@ -2528,7 +2456,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; } @@ -2551,7 +2479,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; } @@ -2569,7 +2497,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; } @@ -2615,7 +2543,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) @@ -2646,7 +2574,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) @@ -2677,7 +2605,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) @@ -2705,7 +2633,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) @@ -3883,6 +3811,7 @@ X *X509ToX(X509 *x509) BUF *b; UINT size; UINT type; + ASN1_INTEGER *s; // Validate arguments if (x509 == NULL) { @@ -3950,8 +3879,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; @@ -3968,17 +3897,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; @@ -4003,7 +3944,7 @@ X *X509ToX(X509 *x509) default: x->is_compatible_bit = false; break; - } + }*/ } return x; @@ -4040,7 +3981,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); @@ -4160,7 +4101,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(); @@ -4317,6 +4258,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) { @@ -4329,6 +4297,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) { @@ -4879,6 +4861,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() { @@ -4933,6 +4931,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) { @@ -4944,14 +4946,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; @@ -5293,8 +5308,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 e53c56f1..8bd25818 100644 --- a/src/Mayaqua/Encrypt.h +++ b/src/Mayaqua/Encrypt.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 2b53fe1f..a610ffad 100644 --- a/src/Mayaqua/FileIO.c +++ b/src/Mayaqua/FileIO.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 2bcf927d..0822f2a9 100644 --- a/src/Mayaqua/FileIO.h +++ b/src/Mayaqua/FileIO.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 178e1a5a..69b10439 100644 --- a/src/Mayaqua/Internat.c +++ b/src/Mayaqua/Internat.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 98236843..fcebb916 100644 --- a/src/Mayaqua/Internat.h +++ b/src/Mayaqua/Internat.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 cb2b22e8..4c7d4811 100644 --- a/src/Mayaqua/Kernel.c +++ b/src/Mayaqua/Kernel.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 RFC3164 format (example: 2017-09-27T18:25:55.434-9:00) +void GetDateTimeStrRFC3164(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 56f241f5..54173506 100644 --- a/src/Mayaqua/Kernel.h +++ b/src/Mayaqua/Kernel.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 GetDateTimeStrRFC3164(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 4ca4d90e..d6de7143 100644 --- a/src/Mayaqua/MayaType.h +++ b/src/Mayaqua/MayaType.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 f998138a..5bc06b86 100644 --- a/src/Mayaqua/Mayaqua.c +++ b/src/Mayaqua/Mayaqua.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 cbda4683..36fdc648 100644 --- a/src/Mayaqua/Mayaqua.h +++ b/src/Mayaqua/Mayaqua.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 246b4fbf..26b33b7e 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 2d9bd9f5..31268061 100644 --- a/src/Mayaqua/Memory.c +++ b/src/Mayaqua/Memory.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -2478,9 +2478,12 @@ UINT ReadFifo(FIFO *f, void *p, UINT size) f->total_read_size += (UINT64)read_size; - if (f->size == 0) + if (f->fixed == false) { - f->pos = 0; + if (f->size == 0) + { + f->pos = 0; + } } ShrinkFifoMemory(f); @@ -2500,6 +2503,11 @@ void ShrinkFifoMemory(FIFO *f) return; } + if (f->fixed) + { + return; + } + // Rearrange the memory if (f->pos >= FIFO_INIT_MEM_SIZE && f->memsize >= fifo_current_realloc_mem_size && @@ -2520,6 +2528,25 @@ void ShrinkFifoMemory(FIFO *f) } } +// Write data to the front of FIFO +void WriteFifoFront(FIFO *f, void *p, UINT size) +{ + // Validate arguments + if (f == NULL || size == 0) + { + return; + } + + if (f->pos < size) + { + PadFifoFront(f, size - f->pos); + } + + Copy(((UCHAR *)f->p) + (f->pos - size), p, size); + f->pos -= size; + f->size += size; +} + // Write to the FIFO void WriteFifo(FIFO *f, void *p, UINT size) { @@ -2560,6 +2587,20 @@ void WriteFifo(FIFO *f, void *p, UINT size) KS_INC(KS_WRITE_FIFO_COUNT); } +// Add a padding before the head of fifo +void PadFifoFront(FIFO *f, UINT size) +{ + // Validate arguments + if (f == NULL || size == 0) + { + return; + } + + f->memsize += size; + + f->p = ReAlloc(f->p, f->memsize); +} + // Clear the FIFO void ClearFifo(FIFO *f) { @@ -2678,6 +2719,10 @@ FIFO *NewFifoFast() return NewFifoEx(true); } FIFO *NewFifoEx(bool fast) +{ + return NewFifoEx2(fast, false); +} +FIFO *NewFifoEx2(bool fast, bool fixed) { FIFO *f; @@ -2698,6 +2743,7 @@ FIFO *NewFifoEx(bool fast) f->size = f->pos = 0; f->memsize = FIFO_INIT_MEM_SIZE; f->p = Malloc(FIFO_INIT_MEM_SIZE); + f->fixed = false; #ifndef DONT_USE_KERNEL_STATUS // TrackNewObj(POINTER_TO_UINT64(f), "FIFO", 0); @@ -4381,7 +4427,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 35066027..693386ba 100644 --- a/src/Mayaqua/Memory.h +++ b/src/Mayaqua/Memory.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -160,6 +160,7 @@ struct FIFO UINT pos, size, memsize; UINT64 total_read_size; UINT64 total_write_size; + bool fixed; }; // List @@ -356,6 +357,8 @@ void ShrinkFifoMemory(FIFO *f); UCHAR *GetFifoPointer(FIFO *f); UCHAR *FifoPtr(FIFO *f); void WriteFifo(FIFO *f, void *p, UINT size); +void WriteFifoFront(FIFO *f, void *p, UINT size); +void PadFifoFront(FIFO *f, UINT size); void ClearFifo(FIFO *f); UINT FifoSize(FIFO *f); void LockFifo(FIFO *f); @@ -365,6 +368,7 @@ void CleanupFifo(FIFO *f); FIFO *NewFifo(); FIFO *NewFifoFast(); FIFO *NewFifoEx(bool fast); +FIFO *NewFifoEx2(bool fast, bool fixed); void InitFifo(); UINT GetFifoCurrentReallocMemSize(); void SetFifoCurrentReallocMemSize(UINT size); @@ -475,7 +479,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 d78bc623..6d6b9039 100644 --- a/src/Mayaqua/Microsoft.c +++ b/src/Mayaqua/Microsoft.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 eba15cfa..59197b47 100644 --- a/src/Mayaqua/Microsoft.h +++ b/src/Mayaqua/Microsoft.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 aec22414..df057213 100644 --- a/src/Mayaqua/Network.c +++ b/src/Mayaqua/Network.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 { @@ -1722,7 +1727,7 @@ void RUDPDo_NatT_Interrupt(RUDP_STACK *r) PackAddInt64(p, "tran_id", r->NatT_TranId); PackAddStr(p, "token", r->NatT_Token); PackAddStr(p, "svc_name", r->SvcName); - PackAddStr(p, "product_str", CEDAR_PRODUCT_STR); + PackAddStr(p, "product_str", "SoftEther OSS"); PackAddInt64(p, "session_key", r->NatT_SessionKey); PackAddInt(p, "nat_traversal_version", UDP_NAT_TRAVERSAL_VERSION); @@ -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); @@ -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 @@ -12764,7 +12773,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 +12913,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 +12975,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 +13017,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 +13041,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 +13227,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 +13387,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 +13477,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 +13869,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 +13883,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)) @@ -15176,6 +15229,11 @@ SOCK *ConnectEx2(char *hostname, UINT port, UINT timeout, bool *cancel_flag) return ConnectEx3(hostname, port, timeout, cancel_flag, NULL, NULL, false, false, true); } SOCK *ConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, char *nat_t_svc_name, UINT *nat_t_error_code, bool try_start_ssl, bool ssl_no_tls, bool no_get_hostname) +{ + return ConnectEx4(hostname, port, timeout, cancel_flag, nat_t_svc_name, nat_t_error_code, try_start_ssl, ssl_no_tls, + no_get_hostname, NULL); +} +SOCK *ConnectEx4(char *hostname, UINT port, UINT timeout, bool *cancel_flag, char *nat_t_svc_name, UINT *nat_t_error_code, bool try_start_ssl, bool ssl_no_tls, bool no_get_hostname, IP *ret_ip) { SOCK *sock; SOCKET s; @@ -15193,6 +15251,7 @@ SOCK *ConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, cha char hint_str[MAX_SIZE]; bool force_use_natt = false; UINT dummy_int = 0; + IP dummy_ret_ip; // Validate arguments if (hostname == NULL || port == 0 || port >= 65536 || IsEmptyStr(hostname)) { @@ -15211,6 +15270,12 @@ SOCK *ConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, cha nat_t_error_code = &dummy_int; } + Zero(&dummy_ret_ip, sizeof(IP)); + if (ret_ip == NULL) + { + ret_ip = &dummy_ret_ip; + } + Zero(hint_str, sizeof(hint_str)); StrCpy(hostname_original, sizeof(hostname_original), hostname); @@ -15258,10 +15323,27 @@ SOCK *ConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, cha Zero(&ip4, sizeof(ip4)); Zero(&ip6, sizeof(ip6)); - // Forward resolution - if (GetIP46Ex(&ip4, &ip6, hostname_original, 0, cancel_flag) == false) + if (IsZeroIp(ret_ip) == false) { - return NULL; + // Skip name resolution + if (IsIP6(ret_ip)) + { + Copy(&ip6, ret_ip, sizeof(IP)); + } + else + { + Copy(&ip4, ret_ip, sizeof(IP)); + } + + //Debug("Using cached IP address: %s = %r\n", hostname_original, ret_ip); + } + else + { + // Forward resolution + if (GetIP46Ex(&ip4, &ip6, hostname_original, 0, cancel_flag) == false) + { + return NULL; + } } if (IsZeroIp(&ip4) == false && IsIPLocalHostOrMySelf(&ip4)) @@ -15284,6 +15366,8 @@ SOCK *ConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, cha if (s != INVALID_SOCKET) { Copy(¤t_ip, &ip4, sizeof(IP)); + + Copy(ret_ip, &ip4, sizeof(IP)); } } else if (force_use_natt) @@ -15297,6 +15381,8 @@ SOCK *ConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, cha StrCpy(nat_t_sock->UnderlayProtocol, sizeof(nat_t_sock->UnderlayProtocol), SOCK_UNDERLAY_NAT_T); } + Copy(ret_ip, &ip4, sizeof(IP)); + return nat_t_sock; } else @@ -15505,6 +15591,8 @@ SOCK *ConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, cha p1.Result_Tcp_Sock->RemoteHostname = CopyStr(hostname); } + Copy(ret_ip, &ip4, sizeof(IP)); + return p1.Result_Tcp_Sock; } else if (p2.Ok) @@ -15519,6 +15607,8 @@ SOCK *ConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, cha StrCpy(p2.Result_Nat_T_Sock->UnderlayProtocol, sizeof(p2.Result_Nat_T_Sock->UnderlayProtocol), SOCK_UNDERLAY_NAT_T); + Copy(ret_ip, &ip4, sizeof(IP)); + return p2.Result_Nat_T_Sock; } else if (p4.Ok) @@ -15531,6 +15621,8 @@ SOCK *ConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, cha StrCpy(p4.Result_Nat_T_Sock->UnderlayProtocol, sizeof(p4.Result_Nat_T_Sock->UnderlayProtocol), SOCK_UNDERLAY_DNS); + Copy(ret_ip, &ip4, sizeof(IP)); + return p4.Result_Nat_T_Sock; } else if (p3.Ok) @@ -15539,6 +15631,8 @@ SOCK *ConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, cha StrCpy(p3.Result_Nat_T_Sock->UnderlayProtocol, sizeof(p3.Result_Nat_T_Sock->UnderlayProtocol), SOCK_UNDERLAY_ICMP); + Copy(ret_ip, &ip4, sizeof(IP)); + return p3.Result_Nat_T_Sock; } else @@ -15581,6 +15675,8 @@ SOCK *ConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, cha Copy(¤t_ip, &ip6, sizeof(IP)); is_ipv6 = true; + + Copy(ret_ip, &ip6, sizeof(IP)); } } } @@ -17706,9 +17802,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; @@ -17732,6 +17828,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; } @@ -17825,7 +17925,7 @@ void InitNetwork() disable_cache = false; - dh_1024 = DhNewGroup2(); + dh_2048 = DhNew2048(); Zero(rand_port_numbers, sizeof(rand_port_numbers)); @@ -18234,7 +18334,7 @@ void SetCurrentGlobalIP(IP *ip, bool ipv6) return; } - if (IsZeroIp(ip)); + if (IsZeroIp(ip)) { return; } @@ -18259,10 +18359,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 @@ -22637,7 +22737,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; } @@ -22651,7 +22758,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); @@ -22768,9 +22875,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); @@ -22823,7 +22933,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 158485e6..ffc96d07 100644 --- a/src/Mayaqua/Network.h +++ b/src/Mayaqua/Network.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -752,8 +761,8 @@ struct RUDP_SESSION }; // NAT Traversal Server Information -#define UDP_NAT_T_SERVER_TAG "x%c.x%c.servers.nat-traversal.softether-network.net." -#define UDP_NAT_T_SERVER_TAG_ALT "x%c.x%c.servers.nat-traversal.uxcom.jp." +#define UDP_NAT_T_SERVER_TAG "x%c.x%c.dev.servers.nat-traversal.softether-network.net." +#define UDP_NAT_T_SERVER_TAG_ALT "x%c.x%c.dev.servers.nat-traversal.uxcom.jp." #define UDP_NAT_T_PORT 5004 // Related to processing to get the IP address of the NAT-T server @@ -1276,6 +1285,7 @@ SOCK *Connect(char *hostname, UINT port); SOCK *ConnectEx(char *hostname, UINT port, UINT timeout); SOCK *ConnectEx2(char *hostname, UINT port, UINT timeout, bool *cancel_flag); SOCK *ConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, char *nat_t_svc_name, UINT *nat_t_error_code, bool try_start_ssl, bool ssl_no_tls, bool no_get_hostname); +SOCK *ConnectEx4(char *hostname, UINT port, UINT timeout, bool *cancel_flag, char *nat_t_svc_name, UINT *nat_t_error_code, bool try_start_ssl, bool ssl_no_tls, bool no_get_hostname, IP *ret_ip); SOCKET ConnectTimeoutIPv4(IP *ip, UINT port, UINT timeout, bool *cancel_flag); void SetSocketSendRecvBufferSize(SOCKET s, UINT size); UINT GetSocketBufferSize(SOCKET s, bool send); @@ -1368,6 +1378,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 +1687,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 d4355918..bbb0f4e8 100644 --- a/src/Mayaqua/OS.c +++ b/src/Mayaqua/OS.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 fb0d0460..71691639 100644 --- a/src/Mayaqua/OS.h +++ b/src/Mayaqua/OS.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 e2684025..71de8622 100644 --- a/src/Mayaqua/Object.c +++ b/src/Mayaqua/Object.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 6423e685..903a6631 100644 --- a/src/Mayaqua/Object.h +++ b/src/Mayaqua/Object.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 d2aff711..64ae8ce8 100644 --- a/src/Mayaqua/Pack.c +++ b/src/Mayaqua/Pack.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -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 99dccddb..68cd74c9 100644 --- a/src/Mayaqua/Pack.h +++ b/src/Mayaqua/Pack.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 00df3c98..01cb9a70 100644 --- a/src/Mayaqua/Secure.c +++ b/src/Mayaqua/Secure.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 c7d794d5..3bd99726 100644 --- a/src/Mayaqua/Secure.h +++ b/src/Mayaqua/Secure.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 362baef4..66e7acc3 100644 --- a/src/Mayaqua/Str.c +++ b/src/Mayaqua/Str.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -3415,7 +3415,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 70bde377..f5ad7769 100644 --- a/src/Mayaqua/Str.h +++ b/src/Mayaqua/Str.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ 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 57b7a46e..e6a9c696 100644 --- a/src/Mayaqua/Table.c +++ b/src/Mayaqua/Table.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 f121e615..238b4ad9 100644 --- a/src/Mayaqua/Table.h +++ b/src/Mayaqua/Table.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 45e1624b..a4220183 100644 --- a/src/Mayaqua/TcpIp.c +++ b/src/Mayaqua/TcpIp.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -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)) { @@ -1829,19 +1844,26 @@ 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); // 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->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); } } } @@ -2014,6 +2036,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) { @@ -4276,7 +4325,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 f81e6a6c..9996f81d 100644 --- a/src/Mayaqua/TcpIp.h +++ b/src/Mayaqua/TcpIp.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -794,6 +796,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 +807,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 @@ -912,6 +920,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 +944,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 261c9ab7..92f74c0b 100644 --- a/src/Mayaqua/Tick64.c +++ b/src/Mayaqua/Tick64.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 f3aa70e8..58e6059f 100644 --- a/src/Mayaqua/Tick64.h +++ b/src/Mayaqua/Tick64.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 064bbd05..1a1ccfd1 100644 --- a/src/Mayaqua/Tracking.c +++ b/src/Mayaqua/Tracking.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 9b6b69c1..8706c9fe 100644 --- a/src/Mayaqua/Tracking.h +++ b/src/Mayaqua/Tracking.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 ec5b25c1..7f23b1e1 100644 --- a/src/Mayaqua/TunTap.h +++ b/src/Mayaqua/TunTap.h @@ -1,4 +1,4 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // 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 d9193e81..59eeb8ee 100644 --- a/src/Mayaqua/Unix.c +++ b/src/Mayaqua/Unix.c @@ -1,11 +1,11 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 1db8425b..441f42ea 100644 --- a/src/Mayaqua/Unix.h +++ b/src/Mayaqua/Unix.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 cbde3bf5..959c7dda 100644 --- a/src/Mayaqua/Win32.c +++ b/src/Mayaqua/Win32.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 @@ -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 e9f4fbb8..09f31984 100644 --- a/src/Mayaqua/Win32.h +++ b/src/Mayaqua/Win32.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 898df896..9b9c7319 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 21cafa05..0c94d4db 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 9d8f67ca..2a05c480 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 aae7bfb4..eab0d1eb 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 2c0de665..5feca2e2 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 b366c948..e9ba2a0c 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 4ffb5659..ba645141 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 d913db69..29713d0c 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 ca5cbfa0..e8e6197c 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 ed602d43..da6014f5 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 1d990ea7..a07067b7 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 6cafb357..3a634b63 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 962608be..0b4eb19f 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 1bcf8c3b..f3d0253b 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 0c7a8766..ae72b3b5 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 88c90eb3..c905f130 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 772f8cdf..3fd92c5a 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 93a8c95b..707991ea 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 2967c7b2..8b0fc658 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 61f40017..4112dfe9 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 b6032ed7..14c21cfe 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 d683199e..06b73094 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 e70ead83..a1121f57 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 e66f5013..85836cd1 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 c2c39860..bd07f711 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 f4286337..6e3542d0 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 4133accf..ca5d5703 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 a2eb1e91..dd721929 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 e88b83f2..e8c256c2 100644 --- a/src/Neo/NDIS5.c +++ b/src/Neo/NDIS5.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 f0f8ec29..175ce14c 100644 --- a/src/Neo/NDIS5.h +++ b/src/Neo/NDIS5.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 695f0b65..c226ec32 100644 --- a/src/Neo/Neo.c +++ b/src/Neo/Neo.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 1890f8f6..8c4ad9e5 100644 --- a/src/Neo/Neo.h +++ b/src/Neo/Neo.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 d15b499d..e42cd7d0 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 61ff4e5b..d9a8fe1d 100644 --- a/src/Neo6/NDIS6.c +++ b/src/Neo6/NDIS6.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 c229adc1..9e02d065 100644 --- a/src/Neo6/NDIS6.h +++ b/src/Neo6/NDIS6.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 4ff9e15c..43b0b49f 100644 --- a/src/Neo6/Neo6.c +++ b/src/Neo6/Neo6.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 3e5e45a1..860b59e7 100644 --- a/src/Neo6/Neo6.h +++ b/src/Neo6/Neo6.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 d15b499d..e42cd7d0 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 e0447530..0553addf 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 902f786d..9f416303 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 df43db6c..3de66a64 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 deleted file mode 100644 index 9e4efff0..00000000 --- a/src/README.TXT +++ /dev/null @@ -1,227 +0,0 @@ -SoftEther VPN - 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/ - -Source code packages (.zip and .tar.gz) and binary files are also available: -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. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License version 2 -as published by the Free Software Foundation. - -SoftEther VPN ("SoftEther" means "Software Ethernet") is one of the -world's most powerful and easy-to-use multi-protocol VPN software. - -SoftEther VPN runs on Windows, Linux, Mac, FreeBSD and Solaris. - -SoftEther VPN supports most of widely-used VPN protocols -including SSL-VPN, OpenVPN, IPsec, L2TP, MS-SSTP, L2TPv3 and EtherIP -by the single SoftEther VPN Server program. - -More details on http://www.softether.org/. - - -SOFTETHER VPN ADVANTAGES ------------------------- - -- Supporting all popular VPN protocols by the single VPN server: - SSL-VPN (HTTPS) - OpenVPN - IPsec - L2TP - MS-SSTP - L2TPv3 - EtherIP -- Free and open-source software. -- Easy to establish both remote-access and site-to-site VPN. -- SSL-VPN Tunneling on HTTPS to pass through NATs and firewalls. -- Revolutionary VPN over ICMP and VPN over DNS features. -- Resistance to highly-restricted firewall. -- Ethernet-bridging (L2) and IP-routing (L3) over VPN. -- Embedded dynamic-DNS and NAT-traversal so that no static nor - fixed IP address is required. -- AES 256-bit and RSA 4096-bit encryptions. -- Sufficient security features such as logging and firewall inner - VPN tunnel. -- User authentication with RADIUS and NT domain controllers. -- User authentication with X.509 client certificate. -- Packet logging. -- 1Gbps-class high-speed throughput performance with low memory and - CPU usage. -- Windows, Linux, Mac, Android, iPhone, iPad and Windows Phone are - supported. -- The OpenVPN clone function supports legacy OpenVPN clients. -- IPv4 / IPv6 dual-stack. -- The VPN server runs on Windows, Linux, FreeBSD, Solaris and Mac OS X. -- Configure All settings on GUI. -- Multi-languages (English, Japanese and Simplified-Chinese). -- No memory leaks. High quality stable codes, intended for long-term runs. - We always verify that there are no memory or resource leaks before - releasing the build. -- More details at http://www.softether.org/. - - -GETTING STARTED ---------------- - -Visit the SoftEther VPN Project official web site at first: - http://www.softether.org/ - -If you are not a developer, it is recommended to download the binary -installers from: - http://www.softether-download.com/ - -To build from the source, -see "BUILD_UNIX.TXT" or "BUILD_WINDOWS.TXT" files. - - -HOW TO DOWNLOAD THE LATEST SOURCE CODE PACKAGE ----------------------------------------------- - -Go to http://www.softether-download.com/ and you can find the latest -source-code package file in both .ZIP and .TAR.GZ format. - -This is the easiest way to obtain the source code of SoftEther VPN. - - -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/ - -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 -$ cd SoftEtherVPN -$ ./configure -$ make -$ make install - - -TO CIRCUMVENT YOUR GOVERNMENT'S FIREWALL RESTRICTION ----------------------------------------------------- - -Because SoftEther VPN is overly strong tool to build a VPN tunnel, -some censorship governments want to block your access to the source code -of SoftEther VPN, by abusing their censorship firewalls. - -To circumvent your censor's unjust restriction, -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/ - - -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/ - -We hope that you can reach one of the above URLs at least! - - -SOURCE CODE CONTRIBUTION ------------------------- - -Your contribution to SoftEther VPN Project is much appreciated. -Please send patches to us through GitHub. -Read the SoftEther VPN Patch Acceptance Policy in advance: -http://www.softether.org/5-download/src/9.patch - - -DEAR SECURITY EXPERTS ---------------------- - -If you find a bug or a security vulnerability please kindly inform us -about the problem immediately so that we can fix the security problem -to protect a lot of users around the world as soon as possible. - -Our e-mail address for security reports is: -softether-vpn-security [at] softether.org - -Please note that the above e-mail address is not a technical support -inquiry address. If you need technical assistance, please visit -http://www.softether.org/ and ask your question on the users forum. - - -DISCLAIMER ----------- - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN, -UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY, -MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS -SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS -SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER -CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL -DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING, -MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR -SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND -CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO -EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO, -JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION -AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN -THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE. - -USE ONLY IN JAPAN. DO NOT USE THIS SOFTWARE IN ANOTHER COUNTRY UNLESS -YOU HAVE A CONFIRMATION THAT THIS SOFTWARE DOES NOT VIOLATE ANY -CRIMINAL LAWS OR CIVIL RIGHTS IN THAT PARTICULAR COUNTRY. USING THIS -SOFTWARE IN OTHER COUNTRIES IS COMPLETELY AT YOUR OWN RISK. THE -SOFTETHER VPN PROJECT HAS DEVELOPED AND DISTRIBUTED THIS SOFTWARE TO -COMPLY ONLY WITH THE JAPANESE LAWS AND EXISTING CIVIL RIGHTS INCLUDING -PATENTS WHICH ARE SUBJECTS APPLY IN JAPAN. OTHER COUNTRIES' LAWS OR -CIVIL RIGHTS ARE NONE OF OUR CONCERNS NOR RESPONSIBILITIES. WE HAVE -NEVER INVESTIGATED ANY CRIMINAL REGULATIONS, CIVIL LAWS OR -INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENTS IN ANY OF OTHER 200+ -COUNTRIES AND TERRITORIES. BY NATURE, THERE ARE 200+ REGIONS IN THE -WORLD, WITH DIFFERENT LAWS. IT IS IMPOSSIBLE TO VERIFY EVERY -COUNTRIES' LAWS, REGULATIONS AND CIVIL RIGHTS TO MAKE THE SOFTWARE -COMPLY WITH ALL COUNTRIES' LAWS BY THE PROJECT. EVEN IF YOU WILL BE -SUED BY A PRIVATE ENTITY OR BE DAMAGED BY A PUBLIC SERVANT IN YOUR -COUNTRY, THE DEVELOPERS OF THIS SOFTWARE WILL NEVER BE LIABLE TO -RECOVER OR COMPENSATE SUCH DAMAGES, CRIMINAL OR CIVIL -RESPONSIBILITIES. NOTE THAT THIS LINE IS NOT LICENSE RESTRICTION BUT -JUST A STATEMENT FOR WARNING AND DISCLAIMER. - -READ AND UNDERSTAND THE 'WARNING.TXT' FILE BEFORE USING THIS SOFTWARE. -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 f70b4fca..733a75ba 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 4dbda6f0..5ae60dc7 100644 --- a/src/SeLow/SeLow.c +++ b/src/SeLow/SeLow.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // SeLow: SoftEther Lightweight Network Protocol // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 35d8895f..19f32a98 100644 --- a/src/SeLow/SeLow.h +++ b/src/SeLow/SeLow.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // SeLow - SoftEther Lightweight Network Protocol // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 075532f4..285b4c6b 100644 --- a/src/SeLow/SeLowCommon.h +++ b/src/SeLow/SeLowCommon.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // SeLow - SoftEther Lightweight Network Protocol // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 d15b499d..e42cd7d0 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 22f26322..d61f39b6 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 539d8e14..53038446 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 eee9e345..f3655081 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 c1ce9d46..1c3b7c3b 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/THIRD_PARTY.TXT b/src/THIRD_PARTY.TXT index 50e42ade..7dba27e3 100644 --- a/src/THIRD_PARTY.TXT +++ b/src/THIRD_PARTY.TXT @@ -722,65 +722,3 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Issue Date: Aug 6, 2010 -------------------- - -NOTES WRITTEN BY SOFTETHER CORPORATION - -Note for users of non-Windows version of PacketiX VPN: The enumerated bundle -of License Agreements above are copies of original License Agreements of each -library programs which PacketiX VPN uses. PacketiX VPN is not a delivered work -from these libraries. PacketiX VPN is a separated work from the libraries, but -it may call functions of the libraries (whether or not PacketiX VPN calls such -functions are depended on the user's intention to link them or not on user's -side computer). While some libraries indicate GPL or LGPL as a condition to -re-distribute, PacketiX VPN is not license under GPL nor LGPL. Therefore, we -took special care not to make PacketiX VPN become delivered works of any GPL -or LGPL libraries. In order to achieve that, both PacketiX VPN and GPL/LGPL -libraries are distributed with isolated forms (means that any program files of -PacketiX VPN are not bound nor linked to any GPL/LGPL libraries). If a user of -PacketiX VPN wants to link GPL/LGPL libraries by their own decisions, -operations and responsibilities, he may do that on his computer. However, if a -delivered work under copyright law is created as a result of such an -operation, such a delivered work must not re-distributed to other people, -because it may violate GPL/LGPL libraries' conditions. - -Note for users of Windows version of PacketiX VPN: For technical reason, the -above texts are exactly same as a file which is also contained on the -non-Windows version of PacketiX VPN. Actually, the Windows version of PacketiX -VPN has no relations to any GPL/LGPL libraries enumerated above. - -SoftEther Corporation provides source codes of some GPL/LGPL/other libraries -listed above on its web server. Anyone can download, use and re-distribute -them under individual licenses which are contained on each archive file, -available from the following URL: -http://uploader.softether.co.jp/src/ - -------------------- - -Copyright Notes and Acknowledgments for PacketiX VPN (Commercial Version): - -PacketiX VPN has some contributed codes from SoftEther VPN Project -(http://www.softether.org/). -These contributed codes have been granted by contributors to be imported into -the PacketiX VPN source-tree without GPLv2 conditions. - -The list of contributors for SoftEther VPN Project: - - - Melvyn - https://github.com/yaurthek - - - nattoheaven - https://github.com/nattoheaven - - - ELIN - https://github.com/el1n - - - YF - https://github.com/yfdyh000 - - -SoftEther Corporation, the distributor of PacketiX VPN, appreciates all -contributors for SoftEther VPN Project very much. - -See also: http://www.softether.org/5-download/src/9.patch - diff --git a/src/VGate/VGate.c b/src/VGate/VGate.c index ea3ad7e9..527fb69e 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 7f698466..bc94c1e3 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 ccaf4161..84559099 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 e29c05ac..84fc265c 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 ebb373a7..01c37e0a 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 eb81ca87..b77f5573 100644 --- a/src/Wfp/Wfp.c +++ b/src/Wfp/Wfp.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // 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-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 96a7d73e..48230009 100644 --- a/src/Wfp/Wfp.h +++ b/src/Wfp/Wfp.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // 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-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 4f0828a1..cfa23712 100644 --- a/src/Wfp/WfpInner.h +++ b/src/Wfp/WfpInner.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // 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-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 635bf52f..5a5a9cc9 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 f84f9e34..44fdbcfd 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 fa5d1717..8070f492 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 00000000..b7b2a24a --- /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 63cc5b85..83bc3df3 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 1f59ae87..23aa0e03 100644 --- a/src/bin/hamcore/strtable_cn.stb +++ b/src/bin/hamcore/strtable_cn.stb @@ -35,13 +35,13 @@ CM_JAPANESE_ONLY_OLD_STARTUP %s\\SoftEther VPN Client 2.0 タスクトレイ.lnk # 软件信息 -PRODUCT_NAME_VPN_CLI SoftEther VPN Client -PRODUCT_NAME_VPN_CMGR SoftEther VPN Client 管理器 -PRODUCT_NAME_VPN_SVR SoftEther VPN Server -PRODUCT_NAME_VPN_BRIDGE SoftEther VPN Bridge -PRODUCT_NAME_VPN_SMGR SoftEther VPN Server 管理器 -PRODUCT_NAME_ELOGSVC SoftEther EtherLogger 测试版 -PRODUCT_NAME_ELOGMGR SoftEther EtherLogger 管理器 测试版 +PRODUCT_NAME_VPN_CLI SoftEther VPN Client Developer Edition +PRODUCT_NAME_VPN_CMGR SoftEther VPN Client Developer Edition 管理器 +PRODUCT_NAME_VPN_SVR SoftEther VPN Server Developer Edition +PRODUCT_NAME_VPN_BRIDGE SoftEther VPN Bridge Developer Edition +PRODUCT_NAME_VPN_SMGR SoftEther VPN Server Developer Edition 管理器 +PRODUCT_NAME_ELOGSVC SoftEther EtherLogger Developer Edition +PRODUCT_NAME_ELOGMGR SoftEther EtherLogger Developer Edition 管理器 # BRANDED_C_TO_S Branded_VPN @@ -50,7 +50,7 @@ PRODUCT_NAME_ELOGMGR SoftEther EtherLogger 管理器 测试版 # CLIENT_ID 123 # Family Name for Software Update Check -PRODUCT_FAMILY_NAME SoftEther +PRODUCT_FAMILY_NAME SoftEtherDev # 产品信息 SE_COMPANY_URL https://selinks.org/?se @@ -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. + #关于失败连接对话框 @@ -774,11 +777,11 @@ REMOTE_DEF_TITLE 指定你要进行远程连接的计算机。 #关于客户通知服务 -CN_TITLE SoftEther VPN Client +CN_TITLE SoftEther VPN Client Developer Edition # 关于连接管理器 -CM_TITLE SoftEther VPN Client 管理器 +CM_TITLE SoftEther VPN Client Developer Edition 管理器 CM_PW_LOCALMACHINE 本地计算机 CM_NO_REMOTE VPN Client 服务运行在 %s 上,不允许远程连接。 CM_CONNECT_FAILED 无法连接到 %s 上的 VPN Client 服务。\r\n确认 VPN 服务已开启并正常运行。 @@ -961,11 +964,11 @@ CM_VPN_FILE_IMPORT_NG 无法导入 VPN 连接设置文件。由于 VPN Client CM_VLAN_INSTALLING 请稍候... CM_SECURE_MUST_LOCAL 因为目前您对远程计算机进行连接并管理 VPN Client,因此无法修改智能卡设置。 CM_DETAIL_MODE_LINK_STR 使用级联,则“通过网桥,路由模式连接”始终启用。 -CM_TRAY_INITING VPN Client 管理器 -CM_TRAY_NOT_CONNECTED VPN Client 管理器\r\n未连接 -CM_TRAY_CONNECTED_0 VPN Client 管理器\r\n主动连接到%u个服务器,并尝试连接到 %u 个服务器 -CM_TRAY_CONNECTED_1 VPN Client 管理器\r\n尝试连接到%u个服务器 -CM_TRAY_CONNECTED_2 VPN Client 管理器\r\n的 %u 个服务器中的连接 +CM_TRAY_INITING VPN Client 管理器 (Developer Edition) +CM_TRAY_NOT_CONNECTED VPN Client 管理器 (Developer Edition)\r\n未连接 +CM_TRAY_CONNECTED_0 VPN Client 管理器 (Developer Edition)\r\n主动连接到%u个服务器,并尝试连接到 %u 个服务器 +CM_TRAY_CONNECTED_1 VPN Client 管理器 (Developer Edition)\r\n尝试连接到%u个服务器 +CM_TRAY_CONNECTED_2 VPN Client 管理器 (Developer Edition)\r\n的 %u 个服务器中的连接 CM_TRAY_MENU_1_SHOW 显示 VPN Client 管理器(&S) CM_TRAY_MENU_1_HIDE 关闭 VPN Client 管理器(&O) CM_TRAY_MENU_2_QUIT 退出 VPN Client 管理器程序(&X) @@ -1109,37 +1112,37 @@ SVC_VPNBRIDGE_DESCRIPT 它管理 SoftEther VPN Bridge 服务进程。SoftEther # 服务定义 (SoftEther VPN Client) -SVC_SEVPNCLIENT_NAME sevpnclient -SVC_SEVPNCLIENT_TITLE SoftEther VPN Client -SVC_SEVPNCLIENT_DESCRIPT 它为 SoftEther VPN Client 管理虚拟网络适配器设备驱动和连接服务。当服务停止时,此计算机将无法使用 SoftEther VPN Client 连接到 SoftEther VPN Server。 +SVC_SEVPNCLIENTDEV_NAME sevpnclientdev +SVC_SEVPNCLIENTDEV_TITLE SoftEther VPN Client Developer Edition +SVC_SEVPNCLIENTDEV_DESCRIPT 它为 SoftEther VPN Client 管理虚拟网络适配器设备驱动和连接服务。当服务停止时,此计算机将无法使用 SoftEther VPN Client 连接到 SoftEther VPN Server。 # 服务定义 (SoftEther VPN Server) -SVC_SEVPNSERVER_NAME sevpnserver -SVC_SEVPNSERVER_TITLE SoftEther VPN Server -SVC_SEVPNSERVER_DESCRIPT 它管理 SoftEther VPN Server 服务进程。SoftEther VPN Server 通过 TCP/IP 协议提供高性能 SoftEther VPN Server 功能。当此服务被停止时,此计算机上的 SoftEther VPN Client 也将停止,且 SoftEther VPN Client 将无法与此计算机建立 VPN 连接。 +SVC_SEVPNSERVERDEV_NAME sevpnserverdev +SVC_SEVPNSERVERDEV_TITLE SoftEther VPN Server Developer Edition +SVC_SEVPNSERVERDEV_DESCRIPT 它管理 SoftEther VPN Server 服务进程。SoftEther VPN Server 通过 TCP/IP 协议提供高性能 SoftEther VPN Server 功能。当此服务被停止时,此计算机上的 SoftEther VPN Client 也将停止,且 SoftEther VPN Client 将无法与此计算机建立 VPN 连接。 # 服务定义 (SoftEther VPN Bridge) -SVC_SEVPNBRIDGE_NAME sevpnbridge -SVC_SEVPNBRIDGE_TITLE SoftEther VPN Bridge -SVC_SEVPNBRIDGE_DESCRIPT 它管理 SoftEther VPN Bridge 服务进程。SoftEther VPN Bridge 提供此计算机连接的网络与远程 SoftEther VPN Server 之间的连接。当此服务被停止时,此计算机上的 SoftEther VPN Bridge 也将停止,且无法再通过网桥连接进行通信。 +SVC_SEVPNBRIDGEDEV_NAME sevpnbridgedev +SVC_SEVPNBRIDGEDEV_TITLE SoftEther VPN Bridge Developer Edition +SVC_SEVPNBRIDGEDEV_DESCRIPT 它管理 SoftEther VPN Bridge 服务进程。SoftEther VPN Bridge 提供此计算机连接的网络与远程 SoftEther VPN Server 之间的连接。当此服务被停止时,此计算机上的 SoftEther VPN Bridge 也将停止,且无法再通过网桥连接进行通信。 # 服务定义 (SoftEther VPN User-mode Router) SVC_VPNROUTER_NAME vpnrouter -SVC_VPNROUTER_TITLE SoftEther VPN Router +SVC_VPNROUTER_TITLE SoftEther VPN Router Developer Edition SVC_VPNROUTER_DESCRIPT 这是用来管理 SoftEther VPN 路由器(服务模式)的服务器进程。 SoftEther VPN 的路由器是一个程序,它提供了一个虚拟 NAT 和 DHCP 服务器,在用户模式下运行,通过使用简单的操作,它可以建立一个在虚拟 IP 网络和一个物理 IP 网络之间的安全连接。如果此服务被停止,在这台电脑上的 SoftEther VPN 路由器将停止, SoftEther VPN Client 将无法在这台电脑上使用路由服务。 # サービス定義 (EtherLogger) SVC_ELOGSVC_NAME elogsvc -SVC_ELOGSVC_TITLE SoftEther EtherLogger +SVC_ELOGSVC_TITLE SoftEther EtherLogger Developer Edition SVC_ELOGSVC_DESCRIPT SoftEther EtherLogger 是一个捕捉从局域网卡连接到电脑上数据流的服务,保存由管理员指定类型的数据包的包头日志,所有数据以文本文件格式。 #关于 SoftEther VPN Server 管理器 -SM_TITLE SoftEther VPN Server 管理器 +SM_TITLE SoftEther VPN Server 管理器 Developer Edition SM_LOCALHOST 本地主机 (此服务器) SM_SERVER_BRIDGE_TITLE 管理 VPN Bridge "%S" SM_S_VHUB_BRIDGE 当使用 VPN Bridge 时,管理虚拟 HUB“BRIDGE”运行 VPN Bridge 的管理。 @@ -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://”开始 @@ -2444,8 +2447,8 @@ 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_INFO1 SoftEther VPN %u.0 Developer Edition (Ver %u.%02u, Build %u) +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) @@ -2489,7 +2492,7 @@ S_STATIC ※注意: 如果认证类型是 RADIUS 或 NT 域认证,您不 PREFIX D_SM_MAIN -CAPTION SoftEther VPN Server 管理器 +CAPTION SoftEther VPN Server 管理器 Developer Edition STATIC1 SoftEther VPN Server 连接设置(&S): STATIC2 VPN Server 或 VPN Bridge 的连接设置被定义如下。双击该项以连接到服务端。\r\n要添加新连接,单击“新设置”。 B_NEW_SETTING 新设置(&N) @@ -3738,7 +3741,7 @@ B_VGS VPN 和门户服务设置 (&G)... PREFIX D_CM_EASY -CAPTION SoftEther VPN Client 简易管理器 +CAPTION SoftEther VPN Client 简易管理器 (Developer Edition) B_MODE 切换运行模式(&M) IDCANCEL 关闭(&C) B_STATUS 查看连接模式(&S) @@ -3746,8 +3749,8 @@ B_VGC VPN Gate 学术项目 PREFIX D_SM_SETUP -CAPTION SoftEther VPN Server / Bridge 简单安装 -S_TITLE SoftEther VPN Server / Bridge 简单安装 +CAPTION SoftEther VPN Server / Bridge 简单安装 (Developer Edition) +S_TITLE SoftEther VPN Server / Bridge 简单安装 (Developer Edition) IDC_STATIC_1 通过使用此安装,您可以为以下使用和目的轻松地安装 SoftEther VPN Server 或 VPN Bridge。退出安装后,您可以使用 VPN Server 管理器自由配置更高级的设置。 S_BOLD 选择你要构建的 VPN Server 类型。可以一起选择多种类型。 C_REMOTE 远程访问 VPN Server (&R) @@ -4432,7 +4435,7 @@ CMD_DISCONNECTED_MSG \n---Error---\n\n与您正管理的主机通信会话被 # VPN CMD 命令 -CMD_VPNCMD SoftEther VPN 命令行管理工具 +CMD_VPNCMD SoftEther VPN Developer Edition 命令行管理工具 CMD_VPNCMD_HELP “vpncmd ”程序是一个允许您通过使用命令行来管理 SoftEther VPN 软件的实用工具。通过使用 vpncmd,您可以连接到运行在本地或远程计算机的 VPN Client,VPN Server 或 VPN Bridge 并管理它们。此外,通过使用 VPN 工具模式,您可以调用网络传输速度测试工具和证书创建功能。即使不连接到 VPN Server 或 VPN Client,vpncmd 也是可以使用的。\n当使用 vpncmd 时,如果文件名是通过使用 /IN 和 /OUT 参数指定的,该命令就可以根据一个文件被批量执行。该文件列举了可执行命令的文件和执行结果可以被写入文件中。通常,vpncmd 启动后命令提示符会出现,但是,当用 /IN 参数指定一个输入文件时,在输入文件的所有行执行完成后,该程序将自动终止。此外,当指定 /CMD 参数来执行一个命令时,在命令执行完成后,程序将自动终止。您不能同时刻指定 /IN 参数和 /CMD 参数。vpncmd 程序的终止代码将是最后执行命令的错误代码 (在成功执行的情况下是 0)。在 Windows 环境下,当具有管理员权限的用户一次或多次启动 vpncmd 时,有可能只需输入 "vpncmd" 到 Windows 命令提示符或 [运行...] Windows 启动 vpncmd。为了在 UNIX 系统下得到同样的结果,您可以手动设置,PATH 环境是可变的。 CMD_VPNCMD_ARGS vpncmd [host:port] [/CLIENT|/SERVER|/TOOLS] [/HUB:hub] [/ADMINHUB:adminhub] [/PASSWORD:password] [/IN:infile] [/OUT:outfile] [/CMD commands...] CMD_VPNCMD_[host:port] 通过指定格式的参数 [主机名:端口号],可自动连接到主机。如果这是没有指定的,会出现一个提示让输入连接目的地。当连接到一个 VPN Client,您不能指定一个端口号。 @@ -4453,7 +4456,7 @@ CMD_VPNCMD_HOST_2 指定的主机名或正在运行的目标 VPN Client 计算 CMD_VPNCMD_HOST_3 目标 IP 地址的主机名: CMD_VPNCMD_HUB_1 如果通过虚拟 HUB 管理模式连接到服务器,请输入虚拟 HUB 的名称。\n如果通过服务器管理模式连接,无须输入任何内容请按回车键。\n CMD_VPNCMD_HUB_2 指定虚拟 HUB 名称: -CMD_VPNCMD_ABOUT SoftEther VPN 命令行管理工具 (vpncmd 命令)\n%S\n%S\nCopyright (c) SoftEther VPN Project. All Rights Reserved.\n +CMD_VPNCMD_ABOUT SoftEther VPN 命令行管理工具 (vpncmd 命令)\nDeveloper Edition\n%S\n%S\nCopyright (c) SoftEther VPN Project. All Rights Reserved.\n CMD_VPNCMD_PASSWORD_1 访问被拒绝。可能是密码不正确,或者是您以不正确的管理模式连接。您可以尝试再次输入密码。要取消,请按 Ctrl + D。 CMD_VPNCMD_PASSWORD_2 密码: CMD_VPNCMD_ERROR 发生错误。(错误代码: %u)\n%s @@ -6944,7 +6947,7 @@ CMD_Check_Args Check # 关于系统 checker # (包含着一部分奇怪的字符串,不过,是检测字符编码变换用的) -CHECK_TITLE ---------------------------------------------------\nSoftEther VPN 运行环境检查工具\n\nCopyright (c) SoftEther VPN Project.\nAll Rights Reserved.\n\n +CHECK_TITLE ---------------------------------------------------\nSoftEther VPN 运行环境检查工具\nDeveloper Edition\n\nCopyright (c) SoftEther VPN Project.\nAll Rights Reserved.\n\n CHECK_NOTE 如果运行了此运行环境检测工具的系统通过了测试,SoftEther VPN 软件有较高的运行可能性。检测可能需要一定的时间。请稍候...\n\n CHECK_EXEC_TAG '%s' 的检测中...\n CHECK_PASS [合格] ○ @@ -6968,7 +6971,7 @@ CHECK_PROC_NETWORK 网络系统 # # ###################################################### -SW_TITLE SoftEther VPN 安装向导 (版本 %S) +SW_TITLE SoftEther VPN Developer Edition 安装向导 (版本 %S) SW_EXIT_CONFIRM SoftEther VPN 的安装未完成。\r\n\r\n您确定要退出吗? SW_UNINSTALL_CONFIRM 开启%s卸载程序。\r\n\r\n您确定要继续吗? @@ -6988,7 +6991,7 @@ SW_COMPONENT_VPNSMGR_DESCRIPTION 安装的只有 VPN Server 管理工具。不 SW_COMPONENT_VPNCMGR_TITLE SoftEther VPN Client 管理工具(仅限管理工具) SW_COMPONENT_VPNCMGR_DESCRIPTION 安装的只有 VPN Client 管理工具。不会安装 VPN Client 服务程序。您可以在 Windows 或 Linux 的系统上使用此 VPN Client 管理工具进行连接和管理远程的 VPN Client 。 -SW_WELCOME_TITLE 欢迎来到 SoftEther VPN 安装向导 +SW_WELCOME_TITLE 欢迎来到 SoftEther VPN Developer Edition 安装向导 SW_MODE_TITLE 选择一个安装模式 SW_NOT_ADMIN_TITLE 没有足够权限 SW_COMPONENTS_TITLE 选择安装一个软件部分 @@ -7109,39 +7112,39 @@ SW_RUN_TEXT_VPNCMGR 开启 SoftEther VPN Client 管理工具. SW_NIC_UNINSTALL SoftEther VPN 客户端的虚拟网络适配器已在系统上创建。\r\n你要删除这些虚拟网络适配器? # --- Do not translate this section !!! stay them in English !!! --- -SW_TAG_USERNAME_ENGLISH \ (User-Mode) -SW_LINK_NAME_VPNSERVER_SVC SoftEther VPN Server User-mode Service -SW_LINK_NAME_VPNBRIDGE_SVC SoftEther VPN Bridge User-mode Service -SW_LONG_VPNSERVER SoftEther VPN Server -SW_LONG_VPNCLIENT SoftEther VPN Client -SW_LONG_VPNBRIDGE SoftEther VPN Bridge -SW_LONG_VPNSMGR SoftEther VPN Server Manager -SW_LONG_VPNCMGR SoftEther VPN Client Manager -SW_LANG_SET_FAILED Failed to write the new language setting on lang.config file. +SW_TAG_USERNAME_ENGLISH \ (User-Mode) +SW_LINK_NAME_VPNSERVER_SVC SoftEther VPN Server Developer User-mode Service +SW_LINK_NAME_VPNBRIDGE_SVC SoftEther VPN Bridge Developer User-mode Service +SW_LONG_VPNSERVER SoftEther VPN Server Developer Edition +SW_LONG_VPNCLIENT SoftEther VPN Client Developer Edition +SW_LONG_VPNBRIDGE SoftEther VPN Bridge Developer Edition +SW_LONG_VPNSMGR SoftEther VPN Server Manager Developer Edition +SW_LONG_VPNCMGR SoftEther VPN Client Manager Developer Edition +SW_LANG_SET_FAILED Failed to write the new language setting on lang.config file. # --- end of "Do not translate this section" --- # 快捷方式文件名 -SW_LINK_NAME_VPNSMGR_SHORT SoftEther VPN Server 管理工具 -SW_LINK_NAME_VPNSMGR_SHORT_UM SE-VPN Server Manager (User) -SW_LINK_NAME_VPNSMGR_SHORT_TOOLSONLY SE-VPN Server Manager (Tools) -SW_LINK_NAME_VPNSMGR_SHORT_TOOLSONLY_UM SE-VPN Server Manager (User) -SW_LINK_NAME_VPNSMGR_FULL SoftEther VPN Server 管理工具 +SW_LINK_NAME_VPNSMGR_SHORT SoftEther VPN Server 管理工具 (Dev) +SW_LINK_NAME_VPNSMGR_SHORT_UM SE-VPN Server Manager (Dev User) +SW_LINK_NAME_VPNSMGR_SHORT_TOOLSONLY SE-VPN Server Manager (Dev Tools) +SW_LINK_NAME_VPNSMGR_SHORT_TOOLSONLY_UM SE-VPN Server Manager (Dev User Tools) +SW_LINK_NAME_VPNSMGR_FULL SoftEther VPN Server 管理工具 Developer Edition SW_LINK_NAME_VPNSMGR_COMMENT 您在一个远程计算机上可以管理 SoftEther VPN Server 或者 SoftEther VPN Bridge 端。 -SW_LINK_NAME_VPNCMGR_SHORT SoftEther VPN Client 管理工具 -SW_LINK_NAME_VPNCMGR_FULL SoftEther VPN Client 管理工具 +SW_LINK_NAME_VPNCMGR_SHORT SoftEther VPN Client 管理工具 (Dev) +SW_LINK_NAME_VPNCMGR_FULL SoftEther VPN Client 管理工具 Developer Edition SW_LINK_NAME_VPNCMGR_COMMENT 您可以通过使用 SoftEther VPN Client 连接到 VPN Server。 -SW_LINK_NAME_VPNCMGRTOOLS_SHORT SoftEther VPN Client 远程管理工具 -SW_LINK_NAME_VPNCMGRTOOLS_SHORT_UM SE-VPN Client Remote Manager (User) -SW_LINK_NAME_VPNCMGRTOOLS_FULL SoftEther VPN Client 远程管理工具 +SW_LINK_NAME_VPNCMGRTOOLS_SHORT SoftEther VPN Client 远程管理工具 (Dev) +SW_LINK_NAME_VPNCMGRTOOLS_SHORT_UM SE-VPN Client Remote Manager (Dev User) +SW_LINK_NAME_VPNCMGRTOOLS_FULL SoftEther VPN Client 远程管理工具 Developer Edition SW_LINK_NAME_VPNCMGR2_FULL 管理远程电脑上的 SoftEther VPN Client SW_LINK_NAME_VPNCMGR2_COMMENT 您可以建立一个远程连接来管理远程电脑上的 SoftEther VPN Client 。 -SW_LINK_NAME_VPNCMGRTRAY_FULL SoftEther VPN Client 管理工具启动菜单 -SW_LINK_NAME_VPNCMGRTRAY_COMMENT 在任务栏的通知区域注册一个 SoftEther VPN Client 图标。 +SW_LINK_NAME_VPNCMGRTRAY_FULL SoftEther VPN Client Manager Developer Edition Startup +SW_LINK_NAME_VPNCMGRTRAY_COMMENT 在任务栏的通知区域注册一个 SoftEther VPN Client Developer Edition图标。 SW_LINK_NAME_EASYINSTALLER 简单安装工具创建工具 SW_LINK_NAME_EASYINSTALLER_COMMENT 为公司系统管理员创建 SoftEther VPN Client 简单安装工具的工具,有自动快速启动到指定目标 VPN 连接的功能。 diff --git a/src/bin/hamcore/strtable_en.stb b/src/bin/hamcore/strtable_en.stb index 4d19760c..3b534ed3 100644 --- a/src/bin/hamcore/strtable_en.stb +++ b/src/bin/hamcore/strtable_en.stb @@ -34,13 +34,13 @@ CM_JAPANESE_ONLY_OLD_STARTUP %s\\SoftEther VPN Client 2.0 タスクトレイ.lnk # Software information -PRODUCT_NAME_VPN_CLI SoftEther VPN Client -PRODUCT_NAME_VPN_CMGR SoftEther VPN Client Manager -PRODUCT_NAME_VPN_SVR SoftEther VPN Server -PRODUCT_NAME_VPN_BRIDGE SoftEther VPN Bridge -PRODUCT_NAME_VPN_SMGR SoftEther VPN Server Manager -PRODUCT_NAME_ELOGSVC SoftEther EtherLogger Beta Edition -PRODUCT_NAME_ELOGMGR SoftEther EtherLogger Manager Beta Edition +PRODUCT_NAME_VPN_CLI SoftEther VPN Client Developer Edition +PRODUCT_NAME_VPN_CMGR SoftEther VPN Client Manager Developer Edition +PRODUCT_NAME_VPN_SVR SoftEther VPN Server Developer Edition +PRODUCT_NAME_VPN_BRIDGE SoftEther VPN Bridge Developer Edition +PRODUCT_NAME_VPN_SMGR SoftEther VPN Server Manager Developer Edition +PRODUCT_NAME_ELOGSVC SoftEther EtherLogger Developer Edition +PRODUCT_NAME_ELOGMGR SoftEther EtherLogger Developer Edition # Branding String for Limited Connection # BRANDED_C_TO_S Branded_VPN @@ -50,7 +50,7 @@ PRODUCT_NAME_ELOGMGR SoftEther EtherLogger Manager Beta Edition # CLIENT_ID 123 # Family Name for Software Update Check -PRODUCT_FAMILY_NAME SoftEther +PRODUCT_FAMILY_NAME SoftEtherDev # Product information SE_COMPANY_URL https://selinks.org/?se @@ -233,7 +233,7 @@ TCPOPT_NOT_ADMIN Users without administrator privileges cannot use the TCP Opti # Windows Vista / Windows 7 / Windows 8 Optimization VISTA_MMCSS_MSG Do you wish to optimize Windows Vista / Windows 7 / Windows 8 / Windows 10 for playing multimedia files with VPN? (e.g. videos, audios and streaming) -VISTA_MMCSS_MSG_2 Optimization for Windows Vista / Windows 7 / Windows 8 / Windows 10 with VPN has already done.\r\nDo you wish to remote optimized configuration? +VISTA_MMCSS_MSG_2 Optimization for Windows Vista / Windows 7 / Windows 8 / Windows 10 with VPN has already done.\r\nDo you wish to remove optimized configuration? VISTA_MMCSS_MSG_3 You cannot use optimization in currently environment. VISTA_MMCSS_MSG_4 You must have administrator privileges for this function.\r\nPlease note that in Windows Vista / Windows 7 / Windows 8 / Windows 10 you should use "Run as Administrators" to execute program. VISTA_MMCSS_MSG_5 Optimization is finished. @@ -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 @@ -766,11 +768,11 @@ REMOTE_DEF_TITLE Specify the computer you want to remotely connect to. # Concerning client notification service -CN_TITLE SoftEther VPN Client +CN_TITLE SoftEther VPN Client Developer Edition # Concerning Connection Manager -CM_TITLE SoftEther VPN Client Manager +CM_TITLE SoftEther VPN Client Developer Edition Manager CM_PW_LOCALMACHINE Local Computer CM_NO_REMOTE The VPN Client service running on %s disallows remote connections. CM_CONNECT_FAILED Unable to connect to the VPN Client service operating on %s. \r\nMake sure the VPN Client service has started and is running normally. @@ -953,11 +955,11 @@ CM_VPN_FILE_IMPORT_NG Unable to import the VPN Connection Setting File. Because CM_VLAN_INSTALLING Please Wait a While CM_SECURE_MUST_LOCAL It is currently not possible to configure smart card settings because you are connected to and managing a VPN Client on a remote computer. CM_DETAIL_MODE_LINK_STR With a Cascade Connection, Connect by Bridge / Router mode is always enabled. -CM_TRAY_INITING SoftEther VPN Client Manager... -CM_TRAY_NOT_CONNECTED SoftEther VPN Client Manager\r\nNot connected. -CM_TRAY_CONNECTED_0 SoftEther VPN Client Manager\r\nActive connections to %u servers and is attempting to connect to %u servers -CM_TRAY_CONNECTED_1 SoftEther VPN Client Manager\r\nAttempting to connect to %u servers -CM_TRAY_CONNECTED_2 SoftEther VPN Client Manager\r\nActive connections to %u servers +CM_TRAY_INITING SoftEther VPN Client Manager (Developer Edition) ... +CM_TRAY_NOT_CONNECTED SoftEther VPN Client Manager (Developer Edition)\r\nNot connected. +CM_TRAY_CONNECTED_0 SoftEther VPN Client Manager (Developer Edition)\r\nActive connections to %u servers and is attempting to connect to %u servers +CM_TRAY_CONNECTED_1 SoftEther VPN Client Manager (Developer Edition)\r\nAttempting to connect to %u servers +CM_TRAY_CONNECTED_2 SoftEther VPN Client Manager (Developer Edition)\r\nActive connections to %u servers CM_TRAY_MENU_1_SHOW &Show VPN Client Manager CM_TRAY_MENU_1_HIDE Cl&ose VPN Client Manager CM_TRAY_MENU_2_QUIT E&xit VPN Client Manager Program @@ -1099,37 +1101,37 @@ SVC_VPNBRIDGE_DESCRIPT This manages the processes of SoftEther VPN Bridge. SoftE # Service definition (SoftEther VPN Client) -SVC_SEVPNCLIENT_NAME sevpnclient -SVC_SEVPNCLIENT_TITLE SoftEther VPN Client -SVC_SEVPNCLIENT_DESCRIPT This manages the Virtual Network Adapter device driver and connection service for the SoftEther VPN Client. When this service is stopped, it will not be possible to use SoftEther VPN Client on this computer to connect to a SoftEther VPN Server. +SVC_SEVPNCLIENTDEV_NAME sevpnclientdev +SVC_SEVPNCLIENTDEV_TITLE SoftEther VPN Client Developer Edition +SVC_SEVPNCLIENTDEV_DESCRIPT This manages the Virtual Network Adapter device driver and connection service for the SoftEther VPN Client. When this service is stopped, it will not be possible to use SoftEther VPN Client on this computer to connect to a SoftEther VPN Server. # Service Definition (SoftEther VPN Server) -SVC_SEVPNSERVER_NAME sevpnserver -SVC_SEVPNSERVER_TITLE SoftEther VPN Server -SVC_SEVPNSERVER_DESCRIPT This manages the server processes of SoftEther VPN Server. SoftEther VPN Server provides high-performance SoftEther VPN Server functions via TCP/IP protocol. When this service is stopped, SoftEther VPN Server on this computer will stop and SoftEther VPN Client will be unable to establish a VPN connection with this computer. +SVC_SEVPNSERVERDEV_NAME sevpnserverdev +SVC_SEVPNSERVERDEV_TITLE SoftEther VPN Server Developer Edition +SVC_SEVPNSERVERDEV_DESCRIPT This manages the server processes of SoftEther VPN Server. SoftEther VPN Server provides high-performance SoftEther VPN Server functions via TCP/IP protocol. When this service is stopped, SoftEther VPN Server on this computer will stop and SoftEther VPN Client will be unable to establish a VPN connection with this computer. # Service Definition (SoftEther VPN Bridge) -SVC_SEVPNBRIDGE_NAME sevpnbridge -SVC_SEVPNBRIDGE_TITLE SoftEther VPN Bridge -SVC_SEVPNBRIDGE_DESCRIPT This manages the processes of SoftEther VPN Bridge. SoftEther VPN Bridge provides a bridging connection between the network this computer is connected to and a SoftEther VPN Server that is remotely located. When this service is stopped, SoftEther VPN Bridge on this computer will stop and it will no longer be possible to communicate via the bridge connection. +SVC_SEVPNBRIDGEDEV_NAME sevpnbridgedev +SVC_SEVPNBRIDGEDEV_TITLE SoftEther VPN Bridge Developer Edition +SVC_SEVPNBRIDGEDEV_DESCRIPT This manages the processes of SoftEther VPN Bridge. SoftEther VPN Bridge provides a bridging connection between the network this computer is connected to and a SoftEther VPN Server that is remotely located. When this service is stopped, SoftEther VPN Bridge on this computer will stop and it will no longer be possible to communicate via the bridge connection. # Service definition (SoftEther VPN User-mode Router) SVC_VPNROUTER_NAME vpnrouter -SVC_VPNROUTER_TITLE SoftEther VPN Router +SVC_VPNROUTER_TITLE SoftEther VPN Router Developer Edition SVC_VPNROUTER_DESCRIPT This manages the server processes of SoftEther VPN Router (service mode). SoftEther VPN Router is a program that provides a virtual NAT and DHCP server that operates in user mode and by using simple operations it is possible to establish a safe connection between a virtual IP network and a physical IP network. When this service is stopped, SoftEther VPN Router on this computer will stop and SoftEther VPN Client will be unable to use the routing service on this computer. # Service Definition (EtherLogger) SVC_ELOGSVC_NAME elogsvc -SVC_ELOGSVC_TITLE SoftEther EtherLogger +SVC_ELOGSVC_TITLE SoftEther EtherLogger Developer Edition SVC_ELOGSVC_DESCRIPT SoftEther EtherLogger is a service that captures data flowing through LAN cards connected to the computer and keeps a log of the headers of the packet types specified by the administrator and all data in text file format. # Concerning SoftEther VPN Server Manager -SM_TITLE SoftEther VPN Server Manager +SM_TITLE SoftEther VPN Server Manager Developer Edition SM_LOCALHOST localhost (This server) SM_SERVER_BRIDGE_TITLE Manage VPN Bridge "%S" SM_S_VHUB_BRIDGE When using VPN Bridge, you manage Virtual Hub "BRIDGE" to operate management of VPN Bridge. @@ -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://" @@ -2425,8 +2427,8 @@ 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_INFO1 SoftEther VPN %u.0 Developer Edition (Ver %u.%02u, Build %u) +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 @@ -2470,7 +2472,7 @@ S_STATIC Note: If authentication type is RADIUS or NT Domain Authentication, PREFIX D_SM_MAIN -CAPTION SoftEther VPN Server Manager +CAPTION SoftEther VPN Server Manager Developer Edition STATIC1 Connection &Settings for VPN Server: STATIC2 Connection Settings for VPN Server or VPN Bridge are defined as follows. Double-click the item to connect to the server.\r\nTo add a new connection, click New Setting. B_NEW_SETTING &New Setting @@ -3721,7 +3723,7 @@ B_VGS VPN &Gate Service Settings... PREFIX D_CM_EASY -CAPTION SoftEther VPN Client Easy Manager +CAPTION SoftEther VPN Client Easy Manager (Developer Edition) B_MODE Switch Operation &Mode IDCANCEL &Close B_STATUS View Connection &Status @@ -3729,8 +3731,8 @@ B_VGC VPN Gate Academic Project PREFIX D_SM_SETUP -CAPTION SoftEther VPN Server / Bridge Easy Setup -S_TITLE SoftEther VPN Server / Bridge Easy Setup +CAPTION SoftEther VPN Server / Bridge Easy Setup (Developer Edition) +S_TITLE SoftEther VPN Server / Bridge Easy Setup (Developer Edition) IDC_STATIC_1 By using this setup you can easily setup a SoftEther VPN Server or VPN Bridge for the following use and purpose. After exiting the setup, you can use the VPN Server Manager to freely configure more advanced settings. S_BOLD Select the type of VPN server you want to build. Multiple types can be selected together. C_REMOTE &Remote Access VPN Server @@ -4417,7 +4419,7 @@ CMD_DISCONNECTED_MSG \n--- Error ---\n\nThe communication session with the host # VPNCMD コマンド -CMD_VPNCMD SoftEther VPN Command Line Management Utility +CMD_VPNCMD SoftEther VPN Command Line Management Utility Developer Edition CMD_VPNCMD_HELP The 'vpncmd' program is a utility that allows you to manage SoftEther VPN software by using command lines. By using vpncmd, you can connect to a VPN Client, a VPN Server or VPN Bridge that is running on a local or remote computer and manage these services. Moreover, by using VPN Tools mode, you can call the Network Traffic Speed Test Tool and the certificate creation function. These can be used even when not connected to the VPN Server or VPN Client. \nWhen using vpncmd, if the file name is specified by using the /IN and /OUT parameter, the command can be executed in a batch according to a file in which the executable commands are enumerated and the execution results can be written to a file. Normally a command prompt will appear after vpncmd is launched but when an input file is specified by the /IN parameter, the program will automatically terminate after the execution of all lines in the input file is complete. Also, when a command to execute is specified by the /CMD parameter, the program will automatically terminate after the execution of that command is complete. You cannot specify the /IN parameter and the /CMD parameter at the same time. The termination code of the vpncmd program will be the error code of the last executed command (0 in the case of successful execution). \nUnder a Windows environment, when vpncmd is launched once or more by a user with administrator privileges, it is possible to simply input 'vpncmd' to a Windows command prompt or [Run...] window to launch vpncmd. To achieve the same result under a UNIX system, you can manually set, as appropriate, the PATH environment variable. CMD_VPNCMD_ARGS vpncmd [host:port] [/CLIENT|/SERVER|/TOOLS] [/HUB:hub] [/ADMINHUB:adminhub] [/PASSWORD:password] [/IN:infile] [/OUT:outfile] [/CMD commands...] CMD_VPNCMD_[host:port] By specifying parameters in the format "host name:port number", a connection will automatically be made to that host. If this is not specified, a prompt will appear to input the connection destination. When connecting to a VPN Client, you cannot specify a port number. @@ -4438,7 +4440,7 @@ CMD_VPNCMD_HOST_2 Specify the host name or IP address of the computer that the CMD_VPNCMD_HOST_3 Hostname of IP Address of Destination: CMD_VPNCMD_HUB_1 If connecting to the server by Virtual Hub Admin Mode, please input the Virtual Hub name. \nIf connecting by server admin mode, please press Enter without inputting anything. CMD_VPNCMD_HUB_2 Specify Virtual Hub Name: -CMD_VPNCMD_ABOUT SoftEther VPN Command Line Management Utility (vpncmd command)\n%S\n%S\nCopyright (c) SoftEther VPN Project. All Rights Reserved.\n +CMD_VPNCMD_ABOUT SoftEther VPN Command Line Management Utility (vpncmd command)\nDeveloper Edition\n%S\n%S\nCopyright (c) SoftEther VPN Project. All Rights Reserved.\n CMD_VPNCMD_PASSWORD_1 Access has been denied. Possibly the password is incorrect, or perhaps you are connecting by an incorrect admin mode. You can try inputting the password again. To cancel, press Ctrl+D. CMD_VPNCMD_PASSWORD_2 Password: CMD_VPNCMD_ERROR Error occurred. (Error code: %u)\n%s @@ -6932,7 +6934,7 @@ CMD_Check_Args Check # Concerning System Checker # (This contains some strange character strings which are used to check character code conversion.) -CHECK_TITLE ---------------------------------------------------\nSoftEther VPN Operation Environment Check Tool\n\nCopyright (c) SoftEther VPN Project.\nAll Rights Reserved.\n\n +CHECK_TITLE ---------------------------------------------------\nSoftEther VPN Operation Environment Check Tool\nDeveloper Edition\n\nCopyright (c) SoftEther VPN Project.\nAll Rights Reserved.\n\n CHECK_NOTE If this operation environment check tool is run on a system and that system passes, it is most likely that SoftEther VPN software can operate on that system. This check may take a while. Please wait...\n\n CHECK_EXEC_TAG Checking '%s'... \n CHECK_PASS Pass @@ -6962,7 +6964,7 @@ CHECK_PROC_NETWORK Network system # # ###################################################### -SW_TITLE SoftEther VPN Setup Wizard (Version %S) +SW_TITLE SoftEther VPN Developer Edition Setup Wizard (Version %S) SW_EXIT_CONFIRM The setup process of SoftEther VPN hasn't been finished yet.\r\n\r\nDo you want to exit the setup? SW_UNINSTALL_CONFIRM Starting the uninstall process of %s.\r\n\r\nDo you want to continue? @@ -6982,7 +6984,7 @@ SW_COMPONENT_VPNSMGR_DESCRIPTION Only the VPN Server Manager will be installed SW_COMPONENT_VPNCMGR_TITLE SoftEther VPN Client Manager (Admin Tools Only) SW_COMPONENT_VPNCMGR_DESCRIPTION Only the VPN Client Manager will be installed. The VPN Client service program will not be installed. You can use the VPN Client Manager to connect and manage remote VPN Clients on other computers which can be run on Windows and Linux. -SW_WELCOME_TITLE Welcome to the SoftEther VPN Setup Wizard +SW_WELCOME_TITLE Welcome to the SoftEther VPN Developer Edition Setup Wizard SW_MODE_TITLE Select a Setup Mode SW_NOT_ADMIN_TITLE Not Enough Privileges SW_COMPONENTS_TITLE Select Software Components to Install @@ -7101,40 +7103,40 @@ SW_RUN_TEXT_VPNCMGR Start the SoftEther VPN Client Manager. SW_NIC_UNINSTALL Virtual Network Adapters of SoftEther VPN Client have been created on the system.\r\nDo you want to delete these Virtual Network Adapters? -# --- Do not translate this section !!! stay them in English !!! --- +# Do not translate this section !!! SW_TAG_USERNAME_ENGLISH \ (User-Mode) -SW_LINK_NAME_VPNSERVER_SVC SoftEther VPN Server User-mode Service -SW_LINK_NAME_VPNBRIDGE_SVC SoftEther VPN Bridge User-mode Service -SW_LONG_VPNSERVER SoftEther VPN Server -SW_LONG_VPNCLIENT SoftEther VPN Client -SW_LONG_VPNBRIDGE SoftEther VPN Bridge -SW_LONG_VPNSMGR SoftEther VPN Server Manager -SW_LONG_VPNCMGR SoftEther VPN Client Manager +SW_LINK_NAME_VPNSERVER_SVC SoftEther VPN Server Developer User-mode Service +SW_LINK_NAME_VPNBRIDGE_SVC SoftEther VPN Bridge Developer User-mode Service +SW_LONG_VPNSERVER SoftEther VPN Server Developer Edition +SW_LONG_VPNCLIENT SoftEther VPN Client Developer Edition +SW_LONG_VPNBRIDGE SoftEther VPN Bridge Developer Edition +SW_LONG_VPNSMGR SoftEther VPN Server Manager Developer Edition +SW_LONG_VPNCMGR SoftEther VPN Client Manager Developer Edition SW_LANG_SET_FAILED Failed to write the new language setting on lang.config file. # --- end of "Do not translate this section" --- # Shortcuts Filenames -SW_LINK_NAME_VPNSMGR_SHORT SoftEther VPN Server Manager -SW_LINK_NAME_VPNSMGR_SHORT_UM SE-VPN Server Manager (User) -SW_LINK_NAME_VPNSMGR_SHORT_TOOLSONLY SE-VPN Server Manager (Tools) -SW_LINK_NAME_VPNSMGR_SHORT_TOOLSONLY_UM SE-VPN Server Manager (User) -SW_LINK_NAME_VPNSMGR_FULL SoftEther VPN Server Manager +SW_LINK_NAME_VPNSMGR_SHORT SoftEther VPN Server Manager (Dev) +SW_LINK_NAME_VPNSMGR_SHORT_UM SE-VPN Server Manager (Dev User) +SW_LINK_NAME_VPNSMGR_SHORT_TOOLSONLY SE-VPN Server Manager (Dev Tools) +SW_LINK_NAME_VPNSMGR_SHORT_TOOLSONLY_UM SE-VPN Server Manager (Dev Tools User) +SW_LINK_NAME_VPNSMGR_FULL SoftEther VPN Server Manager Developer Edition SW_LINK_NAME_VPNSMGR_COMMENT You can manage SoftEther VPN Server or SoftEther VPN Bridge on a remote computer. -SW_LINK_NAME_VPNCMGR_SHORT SoftEther VPN Client Manager -SW_LINK_NAME_VPNCMGR_FULL SoftEther VPN Client Manager +SW_LINK_NAME_VPNCMGR_SHORT SoftEther VPN Client Manager (Dev) +SW_LINK_NAME_VPNCMGR_FULL SoftEther VPN Client Manager Developer Edition SW_LINK_NAME_VPNCMGR_COMMENT You can connect to a VPN Server by using SoftEther VPN Client. -SW_LINK_NAME_VPNCMGRTOOLS_SHORT SoftEther VPN Client Remote Manager -SW_LINK_NAME_VPNCMGRTOOLS_SHORT_UM SE-VPN Client Remote Manager (User) -SW_LINK_NAME_VPNCMGRTOOLS_FULL SoftEther VPN Client Remote Manager +SW_LINK_NAME_VPNCMGRTOOLS_SHORT SoftEther VPN Client Remote Manager (Dev) +SW_LINK_NAME_VPNCMGRTOOLS_SHORT_UM SE-VPN Client Remote Manager (Dev User) +SW_LINK_NAME_VPNCMGRTOOLS_FULL SoftEther VPN Client Remote Manager Developer Edition SW_LINK_NAME_VPNCMGR2_FULL Manage Remote Computer's SoftEther VPN Client SW_LINK_NAME_VPNCMGR2_COMMENT You can establish a remote connection to and manage a SoftEther VPN Client on a remote computer. -SW_LINK_NAME_VPNCMGRTRAY_FULL SoftEther VPN Client Manager Startup -SW_LINK_NAME_VPNCMGRTRAY_COMMENT Registers an icon of SoftEther VPN Client on the taskbar's notification area. +SW_LINK_NAME_VPNCMGRTRAY_FULL SoftEther VPN Client Manager Developer Edition Startup +SW_LINK_NAME_VPNCMGRTRAY_COMMENT Registers an icon of SoftEther VPN Client Developer Edition on the taskbar's notification area. SW_LINK_NAME_EASYINSTALLER Easy Installer Creator SW_LINK_NAME_EASYINSTALLER_COMMENT A tool for enterprise system administrators to create a SoftEther VPN Client Easy Installer which has a function to kick-start a VPN connection to the specific destination automatically. diff --git a/src/bin/hamcore/strtable_ja.stb b/src/bin/hamcore/strtable_ja.stb index fc39950b..ce3b7868 100644 --- a/src/bin/hamcore/strtable_ja.stb +++ b/src/bin/hamcore/strtable_ja.stb @@ -35,16 +35,16 @@ STRTABLE_ID SE_VPN_20121007 CM_JAPANESE_ONLY_OLD_STARTUP %s\\SoftEther VPN Client 2.0 タスクトレイ.lnk # ソフトウェア情報 -PRODUCT_NAME_VPN_CLI SoftEther VPN Client -PRODUCT_NAME_VPN_CMGR SoftEther VPN クライアント接続マネージャ -PRODUCT_NAME_VPN_SVR SoftEther VPN Server -PRODUCT_NAME_VPN_BRIDGE SoftEther VPN Bridge -PRODUCT_NAME_VPN_SMGR SoftEther VPN サーバー管理マネージャ -PRODUCT_NAME_ELOGSVC SoftEther EtherLogger Beta Edition -PRODUCT_NAME_ELOGMGR SoftEther EtherLogger Manager Beta Edition +PRODUCT_NAME_VPN_CLI SoftEther VPN Client Developer Edition +PRODUCT_NAME_VPN_CMGR SoftEther VPN Developer Edition クライアント接続マネージャ +PRODUCT_NAME_VPN_SVR SoftEther VPN Server Developer Edition +PRODUCT_NAME_VPN_BRIDGE SoftEther VPN Bridge Developer Edition +PRODUCT_NAME_VPN_SMGR SoftEther VPN Developer Edition サーバー管理マネージャ +PRODUCT_NAME_ELOGSVC SoftEther EtherLogger Developer Edition +PRODUCT_NAME_ELOGMGR SoftEther EtherLogger Developer Edition # ソフトウェア更新チェック用の Family Name -PRODUCT_FAMILY_NAME SoftEther +PRODUCT_FAMILY_NAME SoftEtherDev # 接続制限用のブランド化文字列 @@ -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 関係 @@ -769,11 +771,11 @@ REMOTE_DEF_TITLE リモート接続先のコンピュータを指定してく # クライアント通知サービス関係 -CN_TITLE SoftEther VPN Client +CN_TITLE SoftEther VPN Client Developer Edition # 接続マネージャ関係 -CM_TITLE SoftEther VPN クライアント接続マネージャ +CM_TITLE SoftEther VPN Developer Edition クライアント接続マネージャ CM_PW_LOCALMACHINE このコンピュータ CM_NO_REMOTE %s で動作している VPN Client サービスは、リモートからの操作を許可していません。 CM_CONNECT_FAILED %s で動作している VPN Client サービスに接続できませんでした。\r\nVPN Client サービスが起動し、正しく動作しているかどうか確認してください。 @@ -956,11 +958,11 @@ CM_VPN_FILE_IMPORT_NG 接続設定ファイルをインポートできません CM_VLAN_INSTALLING しばらくお待ちください... CM_SECURE_MUST_LOCAL 現在リモートコンピュータの VPN Client サービスに接続して管理しているため、スマートカードの設定を行うことはできません。 CM_DETAIL_MODE_LINK_STR カスケード接続では、常に [ブリッジ / ルータモードで接続] が有効になっています。 -CM_TRAY_INITING SoftEther VPN クライアント接続マネージャ -CM_TRAY_NOT_CONNECTED SoftEther VPN クライアント接続マネージャ\r\n接続していません -CM_TRAY_CONNECTED_0 SoftEther VPN クライアント接続マネージャ\r\n%u 個のサーバーとの接続が完了し、%u 個のサーバーに接続を試行しています -CM_TRAY_CONNECTED_1 SoftEther VPN クライアント接続マネージャ\r\n%u 個のサーバーに接続を試行しています -CM_TRAY_CONNECTED_2 SoftEther VPN クライアント接続マネージャ\r\n%u 個のサーバーと接続が完了しています +CM_TRAY_INITING SoftEther VPN クライアント接続マネージャ (Developer Edition) +CM_TRAY_NOT_CONNECTED SoftEther VPN クライアント接続マネージャ (Developer Edition)\r\n接続していません +CM_TRAY_CONNECTED_0 SoftEther VPN クライアント接続マネージャ (Developer Edition)\r\n%u 個のサーバーとの接続が完了し、%u 個のサーバーに接続を試行しています +CM_TRAY_CONNECTED_1 SoftEther VPN クライアント接続マネージャ (Developer Edition)\r\n%u 個のサーバーに接続を試行しています +CM_TRAY_CONNECTED_2 SoftEther VPN クライアント接続マネージャ (Developer Edition)\r\n%u 個のサーバーと接続が完了しています CM_TRAY_MENU_1_SHOW 接続マネージャを表示する(&S) CM_TRAY_MENU_1_HIDE 接続マネージャを閉じる(&O) CM_TRAY_MENU_2_QUIT 接続マネージャプログラムの終了(&X) @@ -1103,37 +1105,37 @@ SVC_VPNBRIDGE_DESCRIPT SoftEther VPN Bridge プロセスを管理します。Sof # サービス定義 (SoftEther VPN Client) -SVC_SEVPNCLIENT_NAME sevpnclient -SVC_SEVPNCLIENT_TITLE SoftEther VPN Client -SVC_SEVPNCLIENT_DESCRIPT SoftEther VPN Client の仮想 LAN カードデバイスドライバおよび接続サービスを管理します。このサービスが停止された場合は、このコンピュータの SoftEther VPN Client を使用して SoftEther VPN Server に接続することができなくなります。 +SVC_SEVPNCLIENTDEV_NAME sevpnclientdev +SVC_SEVPNCLIENTDEV_TITLE SoftEther VPN Client Developer Edition +SVC_SEVPNCLIENTDEV_DESCRIPT SoftEther VPN Client の仮想 LAN カードデバイスドライバおよび接続サービスを管理します。このサービスが停止された場合は、このコンピュータの SoftEther VPN Client を使用して SoftEther VPN Server に接続することができなくなります。 # サービス定義 (SoftEther VPN Server) -SVC_SEVPNSERVER_NAME sevpnserver -SVC_SEVPNSERVER_TITLE SoftEther VPN Server -SVC_SEVPNSERVER_DESCRIPT SoftEther VPN Server サーバー プロセスを管理します。SoftEther VPN Server は高性能の SoftEther VPN Server 機能を TCP/IP プロトコルを通じて提供します。このサービスが停止された場合は、このコンピュータの SoftEther VPN Server は停止し、SoftEther VPN Client はこのコンピュータに VPN 接続することができなくなります。 +SVC_SEVPNSERVERDEV_NAME sevpnserverdev +SVC_SEVPNSERVERDEV_TITLE SoftEther VPN Server Developer Edition +SVC_SEVPNSERVERDEV_DESCRIPT SoftEther VPN Server サーバー プロセスを管理します。SoftEther VPN Server は高性能の SoftEther VPN Server 機能を TCP/IP プロトコルを通じて提供します。このサービスが停止された場合は、このコンピュータの SoftEther VPN Server は停止し、SoftEther VPN Client はこのコンピュータに VPN 接続することができなくなります。 # サービス定義 (SoftEther VPN Bridge) -SVC_SEVPNBRIDGE_NAME sevpnbridge -SVC_SEVPNBRIDGE_TITLE SoftEther VPN Bridge -SVC_SEVPNBRIDGE_DESCRIPT SoftEther VPN Bridge プロセスを管理します。SoftEther VPN Bridge はこのコンピュータに接続されているネットワークと遠隔地にある SoftEther VPN Server との間をブリッジ接続します。このサービスが停止された場合は、このコンピュータの SoftEther VPN Bridge は停止し、ブリッジ接続を経由した通信ができなくなります。 +SVC_SEVPNBRIDGEDEV_NAME sevpnbridgedev +SVC_SEVPNBRIDGEDEV_TITLE SoftEther VPN Bridge Developer Edition +SVC_SEVPNBRIDGEDEV_DESCRIPT SoftEther VPN Bridge プロセスを管理します。SoftEther VPN Bridge はこのコンピュータに接続されているネットワークと遠隔地にある SoftEther VPN Server との間をブリッジ接続します。このサービスが停止された場合は、このコンピュータの SoftEther VPN Bridge は停止し、ブリッジ接続を経由した通信ができなくなります。 # サービス定義 (SoftEther VPN User-mode Router) SVC_VPNROUTER_NAME vpnrouter -SVC_VPNROUTER_TITLE SoftEther VPN Router +SVC_VPNROUTER_TITLE SoftEther VPN Router Developer Edition SVC_VPNROUTER_DESCRIPT SoftEther VPN Router (サービスモード) のサーバー プロセスを管理します。SoftEther VPN Router はユーザーモードで動作する仮想 NAT および DHCP サーバーを提供するプログラムで、仮想 IP ネットワークと物理的な IP ネットワークとの間を簡単な操作で安全に接続することができます。このサービスが停止された場合は、このコンピュータの SoftEther VPN Router は停止し、VPN Client はこのコンピュータのルーティングサービスを利用することができなくなります。 # サービス定義 (EtherLogger) SVC_ELOGSVC_NAME elogsvc -SVC_ELOGSVC_TITLE SoftEther EtherLogger +SVC_ELOGSVC_TITLE SoftEther EtherLogger Developer Edition SVC_ELOGSVC_DESCRIPT SoftEther EtherLogger は、コンピュータに接続されている LAN カードを流れるデータをキャプチャし、管理者が指定した種類のパケットのヘッダまたはすべてのデータをテキストファイルにログとして記録するサービスです。 # SoftEther VPN サーバー管理マネージャ関係 -SM_TITLE SoftEther VPN サーバー管理マネージャ +SM_TITLE SoftEther VPN Developer Edition サーバー管理マネージャ SM_LOCALHOST localhost (このサーバー) SM_SERVER_BRIDGE_TITLE VPN Bridge "%S" の管理 SM_S_VHUB_BRIDGE VPN Bridge では、"BRIDGE" という名前の仮想 HUB に対して操作を行うことで管理します。 @@ -2430,8 +2432,8 @@ 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_INFO1 SoftEther VPN %u.0 Developer Edition (Ver %u.%02u, Build %u) +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 @@ -2475,7 +2477,7 @@ S_STATIC ※ [RADIUS または NT ドメイン認証] を使用して認証 PREFIX D_SM_MAIN -CAPTION SoftEther VPN サーバー管理マネージャ +CAPTION SoftEther VPN Developer Edition サーバー管理マネージャ STATIC1 SoftEther VPN Server への接続設定(&P): STATIC2 以下の VPN Server または VPN Bridge への接続設定が登録されています。名前をダブルクリックすると、サーバーに接続できます。\r\n新しい接続を追加するには [新しい接続設定] をクリックしてください。 B_NEW_SETTING 新しい接続設定(&N) @@ -3726,7 +3728,7 @@ B_VGS VPN &Gate サービスの設定... PREFIX D_CM_EASY -CAPTION SoftEther VPN クライアント簡易接続マネージャ +CAPTION SoftEther VPN クライアント簡易接続マネージャ (Developer Edition) B_MODE 動作モードの変更(&M) IDCANCEL 閉じる(&C) B_STATUS 接続状況の表示(&S) @@ -3734,8 +3736,8 @@ B_VGC VPN Gate 学術実験 PREFIX D_SM_SETUP -CAPTION SoftEther VPN Server / Bridge 簡易セットアップ -S_TITLE SoftEther VPN Server / Bridge 簡易セットアップ +CAPTION SoftEther VPN Server / Bridge 簡易セットアップ (Developer Edition) +S_TITLE SoftEther VPN Server / Bridge 簡易セットアップ (Developer Edition) IDC_STATIC_1 このセットアッププログラムを使用すると、SoftEther VPN Server または VPN Bridge を以下の用途や目的のために簡単にセットアップすることができます。セットアップ終了後は、VPN サーバー管理マネージャを用いて、より詳細な設定を自由に行うことができます。 S_BOLD 構築しようとしている VPN サーバーの種類を選択してください。複数の用途のための VPN サーバーを構築しようとしている場合は、複数の種類を選択することができます。 C_REMOTE リモートアクセス VPN サーバー(&R) @@ -4420,7 +4422,7 @@ CMD_DISCONNECTED_MSG \n--- エラー ---\n\n管理対象のホストとの通信 # VPNCMD コマンド -CMD_VPNCMD SoftEther VPN コマンドライン管理ユーティリティ +CMD_VPNCMD SoftEther VPN Developer Edition コマンドライン管理ユーティリティ CMD_VPNCMD_HELP vpncmd プログラムは、SoftEther VPN ソフトウェアをコマンドラインで管理することができるユーティリティです。vpncmd を使用すると、ローカルまたはリモートコンピュータで動作している VPN Client、VPN Server、および VPN Bridge に接続してそれらのサービスを管理することができます。また、VPN Tools モードを使用して、VPN Server や VPN Client に接続していなくても使用できる証明書の作成や速度測定機能などを呼び出すこともできます。\nvpncmd では、/IN および /OUT パラメータとしてファイル名を指定した場合、実行するコマンドを列挙したファイルに従ってコマンドを一括実行したり、実行結果をファイルに書き出すことができます。通常、vpncmd を起動した場合はコマンドプロンプトが表示されますが、/IN パラメータで入力ファイルを指定した場合は入力ファイルのすべての行の実行が完了すると自動的に終了します。また、/CMD パラメータで実行するコマンドを指定した場合、そのコマンドの実行が完了すると自動的に終了します。/IN パラメータと /CMD パラメータは同時に指定することはできません。vpncmd プログラムの終了コードは、最後に実行したコマンドのエラーコード (成功した場合は 0) となります。\nWindows 環境では、管理者権限で 1 度以上 vpncmd を起動すると、次回から Windows のコマンドプロンプトや [ファイル名を指定して実行] を開いて vpncmd と入力するだけで vpncmd を起動することができるようになります。UNIX システムで同様のことを実現するためには、PATH 環境変数を手動で適切に設定することができます。 CMD_VPNCMD_ARGS vpncmd [host:port] [/CLIENT|/SERVER|/TOOLS] [/HUB:hub] [/ADMINHUB:adminhub] [/PASSWORD:password] [/IN:infile] [/OUT:outfile] [/CMD commands...] CMD_VPNCMD_[host:port] [ホスト名:ポート番号] の形式のパラメータを指定すると、そのホストに自動的に接続します。指定しない場合は、接続先を入力するプロンプトが表示されます。VPN Client に接続する場合は、ポート番号は指定できません。 @@ -4441,7 +4443,7 @@ CMD_VPNCMD_HOST_2 接続先の VPN Client が動作しているコンピュー CMD_VPNCMD_HOST_3 接続先のホスト名または IP アドレス: CMD_VPNCMD_HUB_1 サーバーに仮想 HUB 管理モードで接続する場合は、仮想 HUB 名を入力してください。\nサーバー管理モードで接続する場合は、何も入力せずに Enter を押してください。 CMD_VPNCMD_HUB_2 接続先の仮想 HUB 名を入力: -CMD_VPNCMD_ABOUT SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)\n%S\n%S\nCopyright (c) SoftEther VPN Project. All Rights Reserved.\n +CMD_VPNCMD_ABOUT SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)\nDeveloper Edition\n%S\n%S\nCopyright (c) SoftEther VPN Project. All Rights Reserved.\n CMD_VPNCMD_PASSWORD_1 アクセスが拒否されました。パスワードが間違っているか、接続する管理モードが正しくない可能性があります。パスワードをもう一度入力することができます。キャンセルする場合は、Ctrl + D を押してください。 CMD_VPNCMD_PASSWORD_2 パスワード: CMD_VPNCMD_ERROR エラーが発生しました。(エラーコード: %u)\n%s @@ -6937,7 +6939,7 @@ CMD_Check_Args Check # システムチェッカ関係 # (一部奇妙な文字列が含まれていますが、文字コード変換のチェック用です) -CHECK_TITLE ---------------------------------------------------\nSoftEther VPN 動作環境チェックツール\n\nCopyright (c) SoftEther VPN Project.\nAll Rights Reserved.\n\n +CHECK_TITLE ---------------------------------------------------\nSoftEther VPN 動作環境チェックツール\nDeveloper Edition\n\nCopyright (c) SoftEther VPN Project.\nAll Rights Reserved.\n\n CHECK_NOTE この動作環境チェックツールを実行したシステムがテストに合格した場合は、SoftEther VPN ソフトウェアが動作する可能性が高いです。チェックにはしばらく時間がかかる場合があります。そのままお待ちください...\n\n CHECK_EXEC_TAG '%s' のチェック中...\n CHECK_PASS [合格] ○ @@ -6965,7 +6967,7 @@ CHECK_PROC_NETWORK ネットワークシステム # # ###################################################### -SW_TITLE SoftEther VPN セットアップ ウィザード (バージョン %S) +SW_TITLE SoftEther VPN Developer Edition セットアップ ウィザード (バージョン %S) SW_EXIT_CONFIRM SoftEther VPN のセットアップは完了していません。\r\n\r\nセットアップ ウィザードを終了しますか? SW_UNINSTALL_CONFIRM %s のアンインストール処理を開始します。\r\n\r\nよろしいですか? @@ -6985,7 +6987,7 @@ SW_COMPONENT_VPNSMGR_DESCRIPTION この PC に VPN サーバー管理マネー SW_COMPONENT_VPNCMGR_TITLE SoftEther VPN クライアント接続マネージャ (管理ツールのみ) SW_COMPONENT_VPNCMGR_DESCRIPTION この PC に VPN クライアント接続マネージャのみをインストールします。VPN Client 本体はインストールしません。別のコンピュータの Windows / Linux で動作している VPN Client をリモート管理することができます。 -SW_WELCOME_TITLE SoftEther VPN セットアップ ウィザードへようこそ +SW_WELCOME_TITLE SoftEther VPN Developer Edition セットアップ ウィザードへようこそ SW_MODE_TITLE セットアップモードの選択 SW_NOT_ADMIN_TITLE 権限が不足しています SW_COMPONENTS_TITLE インストールするソフトウェアの選択 @@ -7106,36 +7108,37 @@ SW_NIC_UNINSTALL SoftEther VPN Client の仮想 LAN カードが作成さ # Do not translate this section !!! SW_TAG_USERNAME_ENGLISH \ (User-Mode) -SW_LINK_NAME_VPNSERVER_SVC SoftEther VPN Server User-mode Service -SW_LINK_NAME_VPNBRIDGE_SVC SoftEther VPN Bridge User-mode Service -SW_LONG_VPNSERVER SoftEther VPN Server -SW_LONG_VPNCLIENT SoftEther VPN Client -SW_LONG_VPNBRIDGE SoftEther VPN Bridge -SW_LONG_VPNSMGR SoftEther VPN Server Manager -SW_LONG_VPNCMGR SoftEther VPN Client Manager +SW_LINK_NAME_VPNSERVER_SVC SoftEther VPN Server Developer User-mode Service +SW_LINK_NAME_VPNBRIDGE_SVC SoftEther VPN Bridge Developer User-mode Service +SW_LONG_VPNSERVER SoftEther VPN Server Developer Edition +SW_LONG_VPNCLIENT SoftEther VPN Client Developer Edition +SW_LONG_VPNBRIDGE SoftEther VPN Bridge Developer Edition +SW_LONG_VPNSMGR SoftEther VPN Server Manager Developer Edition +SW_LONG_VPNCMGR SoftEther VPN Client Manager Developer Edition SW_LANG_SET_FAILED Failed to write the new language setting on lang.config file. +# --- end of "Do not translate this section" --- # ショートカット名 -SW_LINK_NAME_VPNSMGR_SHORT SoftEther VPN サーバー管理 -SW_LINK_NAME_VPNSMGR_SHORT_UM SE-VPN サーバー管理 (ユーザー) -SW_LINK_NAME_VPNSMGR_SHORT_TOOLSONLY SE-VPN サーバー管理 (ツール) -SW_LINK_NAME_VPNSMGR_SHORT_TOOLSONLY_UM SE-VPN サーバー管理 (ツール・ユーザー) -SW_LINK_NAME_VPNSMGR_FULL SoftEther VPN サーバー管理マネージャ +SW_LINK_NAME_VPNSMGR_SHORT SoftEther VPN サーバー管理 (Dev) +SW_LINK_NAME_VPNSMGR_SHORT_UM SE-VPN サーバー管理 (Dev・ユーザー) +SW_LINK_NAME_VPNSMGR_SHORT_TOOLSONLY SE-VPN サーバー管理 (Dev・ツール) +SW_LINK_NAME_VPNSMGR_SHORT_TOOLSONLY_UM SE-VPN サーバー管理 (Dev・ツール・ユーザー) +SW_LINK_NAME_VPNSMGR_FULL SoftEther VPN サーバー管理マネージャ Developer Edition SW_LINK_NAME_VPNSMGR_COMMENT ローカルまたはリモート コンピュータ上で動作している SoftEther VPN Server および SoftEther VPN Bridge を管理するための管理ツールです。 -SW_LINK_NAME_VPNCMGR_SHORT SoftEther VPN クライアント接続 -SW_LINK_NAME_VPNCMGR_FULL SoftEther VPN クライアント接続マネージャ -SW_LINK_NAME_VPNCMGR_COMMENT SoftEther VPN Client を使用して VPN サーバーに接続することができます。 +SW_LINK_NAME_VPNCMGR_SHORT SoftEther VPN クライアント接続 (Dev) +SW_LINK_NAME_VPNCMGR_FULL SoftEther VPN クライアント接続マネージャ Developer Edition +SW_LINK_NAME_VPNCMGR_COMMENT SoftEther VPN Client Developer Edition を使用して VPN サーバーに接続することができます。 -SW_LINK_NAME_VPNCMGRTOOLS_SHORT SoftEther VPN クライアント リモート管理 -SW_LINK_NAME_VPNCMGRTOOLS_SHORT_UM SE-VPN クライアント リモート管理 (ユーザー) -SW_LINK_NAME_VPNCMGRTOOLS_FULL SoftEther VPN クライアント リモート管理 +SW_LINK_NAME_VPNCMGRTOOLS_SHORT SoftEther VPN クライアント リモート管理 (Dev) +SW_LINK_NAME_VPNCMGRTOOLS_SHORT_UM SE-VPN クライアント リモート管理 (Dev・ユーザー) +SW_LINK_NAME_VPNCMGRTOOLS_FULL SoftEther VPN クライアント リモート管理 Developer Edition SW_LINK_NAME_VPNCMGR2_FULL 別のコンピュータの SoftEther VPN Client の管理 SW_LINK_NAME_VPNCMGR2_COMMENT 別のコンピュータ上の SoftEther VPN Client プログラムにリモート接続して管理することができます。 -SW_LINK_NAME_VPNCMGRTRAY_FULL SoftEther VPN Client Manager Startup -SW_LINK_NAME_VPNCMGRTRAY_COMMENT SoftEther VPN Client のアイコンをタスクバーの通知領域に表示します。 +SW_LINK_NAME_VPNCMGRTRAY_FULL SoftEther VPN Client Manager Developer Edition Startup +SW_LINK_NAME_VPNCMGRTRAY_COMMENT SoftEther VPN Client Developer Edition のアイコンをタスクバーの通知領域に表示します。 SW_LINK_NAME_EASYINSTALLER 簡易インストーラ作成ウィザード SW_LINK_NAME_EASYINSTALLER_COMMENT 自動的に特定の接続先に VPN 接続を開始する機能を搭載した SoftEther VPN Client の簡易インストーラを作成する管理者向けのツールです。 diff --git a/src/bin/hamcore/warning_en.txt b/src/bin/hamcore/warning_en.txt index 4717e799..9ebbf058 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 f6dcb147..662b2508 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 549625c8..b9114dc0 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 303c6788..fa9879b9 100644 --- a/src/hamcorebuilder/hamcorebuilder.c +++ b/src/hamcorebuilder/hamcorebuilder.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 1530df9d..ff6e5768 100644 --- a/src/makefiles/freebsd_32bit.mak +++ b/src/makefiles/freebsd_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) 2012-2017 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2017 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 588492a0..10f06422 100644 --- a/src/makefiles/freebsd_64bit.mak +++ b/src/makefiles/freebsd_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) 2012-2017 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2017 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 cd247139..7addd221 100644 --- a/src/makefiles/linux_32bit.mak +++ b/src/makefiles/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) 2012-2017 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2017 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 544ea2d5..c473c1ec 100644 --- a/src/makefiles/linux_64bit.mak +++ b/src/makefiles/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) 2012-2017 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2017 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 96307390..990f5f3c 100644 --- a/src/makefiles/macos_32bit.mak +++ b/src/makefiles/macos_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) 2012-2017 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2017 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 26cec628..dfffc565 100644 --- a/src/makefiles/macos_64bit.mak +++ b/src/makefiles/macos_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) 2012-2017 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2017 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 c687192b..5fbfc5a1 100644 --- a/src/makefiles/openbsd_32bit.mak +++ b/src/makefiles/openbsd_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) 2012-2017 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2017 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 73e9e4be..b9795fd5 100644 --- a/src/makefiles/openbsd_64bit.mak +++ b/src/makefiles/openbsd_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) 2012-2017 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2017 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 1ddd1082..7e28b4c2 100644 --- a/src/makefiles/solaris_32bit.mak +++ b/src/makefiles/solaris_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) 2012-2017 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2017 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 f50a5a8d..572b83d1 100644 --- a/src/makefiles/solaris_64bit.mak +++ b/src/makefiles/solaris_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) 2012-2017 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2017 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 805e7a28..d5bd0fbb 100644 --- a/src/vpn16/vpn16.c +++ b/src/vpn16/vpn16.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // 16-bit Driver Install Utility for Windows 9x // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 93e81ea6..736b1bf5 100644 --- a/src/vpn16/vpn16.h +++ b/src/vpn16/vpn16.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // 16-bit Driver Install Utility for Windows 9x // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 a566f5f6..af9eca3d 100644 --- a/src/vpnbrand/vpnbrand.h +++ b/src/vpnbrand/vpnbrand.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Hamster Test Code // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 77a81636..530ee68c 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 06407b67..5228016b 100644 --- a/src/vpnbridge/vpnbridge.c +++ b/src/vpnbridge/vpnbridge.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 3a059dd9..0b9c97c2 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 6e27a5b5..35dbdc86 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 7a09f8fc..179e24a1 100644 --- a/src/vpnclient/vpncsvc.c +++ b/src/vpnclient/vpncsvc.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 ddea4e71..c57a6883 100644 --- a/src/vpnclient/vpncsvc.h +++ b/src/vpnclient/vpncsvc.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 a79118df..6499d73a 100644 --- a/src/vpncmd/vpncmd.c +++ b/src/vpncmd/vpncmd.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 feeea3e8..6f507185 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 b1747c08..1ec2991c 100644 --- a/src/vpncmdsys/vpncmdsys.c +++ b/src/vpncmdsys/vpncmdsys.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 d70359af..07721b78 100644 --- a/src/vpncmdsys/vpncmdsys.h +++ b/src/vpncmdsys/vpncmdsys.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 cfdcfdc0..ce8f618c 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 65d7694f..17c22830 100644 --- a/src/vpncmgr/vpncmgr.c +++ b/src/vpncmgr/vpncmgr.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 b382f5c4..e9b8c5f5 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 d74d65c5..dd8faf2b 100644 --- a/src/vpndrvinst/vpndrvinst.c +++ b/src/vpndrvinst/vpndrvinst.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Hamster Test Code // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 34211f8f..a4775016 100644 --- a/src/vpndrvinst/vpndrvinst.h +++ b/src/vpndrvinst/vpndrvinst.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Hamster Test Code // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 58bb9067..dbe358a7 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 f44359b0..d343dca1 100644 --- a/src/vpninstall/vpninstall.c +++ b/src/vpninstall/vpninstall.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 890c179d..3099cc2a 100644 --- a/src/vpninstall/vpninstall.h +++ b/src/vpninstall/vpninstall.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 ce9eb58a..69265b3f 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 20842129..24a3c0c4 100644 --- a/src/vpnserver/vpnserver.c +++ b/src/vpnserver/vpnserver.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 c6152bc5..e12f1c1a 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 1b76b182..384b0acd 100644 --- a/src/vpnsetup/vpnsetup.c +++ b/src/vpnsetup/vpnsetup.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 8afaf0a1..642fe98f 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 1d999a33..2557e6be 100644 --- a/src/vpnsmgr/vpnsmgr.c +++ b/src/vpnsmgr/vpnsmgr.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 991cd14f..f0546186 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 41e1c42f..e23a4a1a 100644 --- a/src/vpnweb/vpnweb.h +++ b/src/vpnweb/vpnweb.h @@ -4,7 +4,7 @@ /* File created by MIDL compiler version 7.00.0500 */ -/* at Mon Oct 19 20:09:17 2015 +/* at Wed Oct 18 16:31:00 2017 */ /* 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 5945f2aa..fa06a3ea 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 beac1b7e..84df263d 100644 --- a/src/vpnweb/vpnweb_i.c +++ b/src/vpnweb/vpnweb_i.c @@ -6,7 +6,7 @@ /* File created by MIDL compiler version 7.00.0500 */ -/* at Mon Oct 19 20:09:17 2015 +/* at Wed Oct 18 16:31:00 2017 */ /* 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 b3553e16..9376da04 100644 --- a/src/vpnweb/vpnweb_p.c +++ b/src/vpnweb/vpnweb_p.c @@ -4,7 +4,7 @@ /* File created by MIDL compiler version 7.00.0500 */ -/* at Mon Oct 19 20:09:17 2015 +/* at Wed Oct 18 16:31:00 2017 */ /* 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 a3f0f264..b3de2c2d 100644 --- a/src/vpnweb/vpnwebdlg.c +++ b/src/vpnweb/vpnwebdlg.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 aa7be0c9..f68af3a2 100644 --- a/src/vpnweb/vpnwebdlg.h +++ b/src/vpnweb/vpnwebdlg.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 dfd78d24..ad856b99 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 - Developer Edition Master Branch // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2015 Daiyuu Nobori. -// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2015 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 00000000..2f508820 --- /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 00000000..1e9dbd0e --- /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 00000000..951b13db --- /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 + +