0
0
mirror of https://github.com/OpenVPN/openvpn3.git synced 2024-09-20 12:12:15 +02:00
Commit Graph

373 Commits

Author SHA1 Message Date
James Yonan
de0da474ef Revamp remote-list handling so that DNS names that resolve to
multiple addresses will be treated as if each address was an
individual remote directive.

Fixed issue where UDP transport driver was calling socket
connect method synchronously.  This can cause exceptions
to be thrown in corner cases, such as "No route to host"
on OSX/iOS for connections to IPv6 addresses when no default
IPv6 route exists on system.  Refactoring UDP connect
operation to be asychronous fixes the issue.

Implemented remote-random.
2013-03-12 19:20:37 +00:00
James Yonan
842c93bfe9 Added capability to build Android development packages for customers. 2013-03-08 01:53:33 +00:00
James Yonan
9fdf215650 OpenVPN 1.0.1 build 71 (iOS)
Core: Log but don't raise a fatal error on connections where
server pushes an invalid route or dhcp-option.  In this case,
the offending pushed directive will be ignored.
2013-03-01 00:10:36 +00:00
James Yonan
a5c05a8e65 Comment update. 2013-02-28 17:35:06 +00:00
James Yonan
9f59e42be2 Client will report its protocol as UDPv4 or TCPv4_CLIENT in options
compatibility string even if running over IPv6 transport to maintain
compatibility with 2.x branch.
2013-02-19 19:15:52 +00:00
James Yonan
32e9c62db7 Support usage such as this:
remote foo.bar 1194 tcp-client
2013-02-19 06:54:12 +00:00
James Yonan
be3a573f66 Core change: provide logic for tunPerist that works with iOS-style
tun semantics, however this code has not been enabled yet on iOS
because it breaks in several ways:

1. network available/unavailable detection appears to break when
   tun interface is kept alive across transport connection sessions.

2. plugin session persistence appears to fail when these lines are not
   executed immediately after transport pause/resume:

     VPNTunnelSetStatus(tunnelRef, kVPNTunnelStatusReasserting, 0);
     VPNTunnelClearConfiguration(tunnelRef)

iOS Core change: change pause/reconnect delay to 3 seconds (from 2)
to reduce flapping.
2013-02-19 06:38:10 +00:00
James Yonan
7e03ddff3e Throw a fatal error if "secret" config file directive is used,
since static key mode is not supported.
2013-02-06 01:40:00 +00:00
James Yonan
a5ed5918de Allow "topology" directive to be pushed more than once, as long
as parameter is consistent.
2013-02-06 01:34:15 +00:00
James Yonan
f71e6c485e Minor test script move. 2013-01-31 15:05:24 +00:00
James Yonan
0ba6e76170 Added copyright to some straggler files. 2013-01-31 15:00:45 +00:00
James Yonan
8af477eb06 Additional file reorg in proto unit test. 2013-01-30 21:15:07 +00:00
James Yonan
77bd160a51 Updated proto unit test with fresh certs/keys. 2013-01-30 21:08:55 +00:00
James Yonan
ce8171fff1 Minor fixes related to open-sourcing process. 2013-01-30 20:17:30 +00:00
James Yonan
ce7c03b472 Java command-line client update. 2013-01-30 19:19:49 +00:00
James Yonan
0387c23486 Minor edits & file reorg to protocol unit test. 2013-01-30 16:24:37 +00:00
James Yonan
13db8d94ca Core: modified read_text_utf8 to remove the Windows UTF-8 BOM,
if present.
2013-01-30 13:36:53 +00:00
James Yonan
bcbc0ebe77 * Core: treat "comp-lzo adaptive" like "comp-lzo".
* Core: make fragment directive error indicate that server as well
  may not use fragment.

* FAQ updates.
2013-01-29 12:26:27 +00:00
James Yonan
f8f5d86b2b Android 1.1.9 build 34
* key-direction default can now be set through the ovpncli API,
  but generally defaults to -1 (bidirectional).
2013-01-28 01:11:28 +00:00
James Yonan
5c1bed795f Android 1.1.9 build 33.
iOS 1.0.1 build 57

Updated FAQ
2013-01-27 03:31:30 +00:00
James Yonan
b7a43cec47 Core: for tls-remote implementation, sanitize x509 name and
common name in the same way as OpenVPN 2.x.
2013-01-26 15:01:14 +00:00
James Yonan
aa9061f923 Need to back out change where TunBuilderBase is abstract base class
because it breaks cli.cpp.
2013-01-26 14:59:41 +00:00
James Yonan
d24d0b4aef On iOS with a split-tunnel, and at least one pushed DNS server:
1. route all DNS requests through pushed DNS server if no added
   search domains.

2. route selected DNS requests through pushed DNS server if at
   least one added search domain.

On Android, apparently there is no selective DNS routing, so all
DNS requests will be routed through pushed DNS server, if at least
one exists.

With redirect-gateway on both platforms, all DNS requests are always
routed through the VPN.
2013-01-26 06:53:31 +00:00
James Yonan
c2b20bdb3c OpenVPN 1.1.9 build 32 (Android)
OpenVPN 1.0.1 build 56 (iOS)

* Added a more reasonable error message when ca is undefined.

* FAQ updates.
2013-01-25 10:37:27 +00:00
James Yonan
dd377281a5 Added cachePassword boolean to ProvideCreds struct in core API.
Separated the functionality of replacePasswordWithSessionID
and cachePassword, and allow them to be used together,
in which case the session ID will be used as the password
until it expires or is invalidated, then the cached
password will be used to reauth.
2013-01-25 02:34:20 +00:00
James Yonan
6c0be1e1c0 iOS: 1.0.1 build 55
Android: 1.1.9 build 31

* Reverted key-direction back to a default of 1.

* Raise fatal error if "fragment" option is used.

* Made TunBuilderCapture more useful as a base class for
  tun construction on various platforms.

* Added disableClientCert flag at ovpncli.hpp API.

* Updated help FAQ with more details on how to
  properly set key-direction, and notes about
  possible network disconnect during voice calls.
2013-01-24 13:34:17 +00:00
James Yonan
9d4e1bbc1c iOS 1.0.1 build 52:
* Added retina PT icon.

Android 1.1.8 build 30:

* Default conn_timeout set to 60.

Core:

* Allow diverse delimiting in "dhcp-option DOMAIN" options.
  Server can push options as such:

  1. push "dhcp-option DOMAIN example.com"
  2. push "dhcp-option DOMAIN domain1.com domain2.com domain3.com"
  3. push "dhcp-option DOMAIN \"domain4.com domain5.com domain6.com\""
2013-01-22 09:19:52 +00:00
James Yonan
f164d367f5 Allow profile meta-variables to be defined via setenv:
setenv USERNAME "test"
setenv FRIENDLY_NAME "Autologin Keychain"
setenv SERVER "asdemo.yonan.net"
setenv SERVER "asdemo1.yonan.net/Asdemo-1"
setenv SERVER "asdemo2.yonan.net/Asdemo/2"
2013-01-21 10:56:01 +00:00
James Yonan
8085f0bb75 Core: allow clients to connect without a client certificate or
key, if the server allows it.  To enable, add the following to
the profile:

    setenv CLIENT_CERT 0

This is necessary to resolve an ambiguity when the profile
contains no client certificate or key, because otherwise
the client app can't know whether an external certificate/key
pair should be obtained from the Keychain, or whether the
server actually doesn't require a client certificate/key.
If the above directive is set to 1 or absent, the app will
assume that an external certificate/key pair should be obtained
from the Keychain

The option is given as a "setenv" to avoid breaking other
OpenVPN clients that might not recognize it.

----

Also, made subtle change to autologin determination, so that
community external PKI profiles will work properly with
autologin or userlogin based on the presence or absence of
auth-user-pass.
2013-01-21 09:42:18 +00:00
James Yonan
12b38c5517 Core: Support net_gateway as a route target on platforms that support
route exclusion (iOS supports it but not Android at the moment).

Don't add IPv4 or v6 routes if the ifconfig for the particular
IP protocol is absent.
2013-01-20 11:23:35 +00:00
James Yonan
3b8ede216d Core: on PolarSSL, try to do string rendition of X509 subject
just like OpenSSL, so that tls-remote equality matches with the
X509 subject will be compatible.
2013-01-20 08:44:49 +00:00
James Yonan
5055dedbfc Core: fixed issue with parsing time period options (such as
"reneg-sec"), where if period is 0, we must treat it as essentially
infinite.  This fixes the issue where "reneg-sec 0" was causing an
infinite connect loop.

Refactored number.hpp to provide all reasonable number-parsing
functionality, so that typeinfo.hpp can be retired.
2013-01-20 06:34:49 +00:00
James Yonan
b5611c7ac0 Core: add optional state debugging for proto.hpp.
In ovpncli.cpp:

#define OPENVPN_DEBUG_PROTO   2 // enable state debugging if >= 2
2013-01-20 04:18:34 +00:00
James Yonan
409d71da47 Core: implemented tls-remote option (for PolarSSL and OpenSSL). 2013-01-19 09:31:55 +00:00
James Yonan
be454f3971 Core change: allow "proto tcp-client" usage for compatibility
with 2.x branch.
2013-01-19 03:40:40 +00:00
James Yonan
6b10d81783 Core change: Fix key-direction directive to work like 2.x branch
where default = bidirectional.
2013-01-19 02:37:15 +00:00
James Yonan
01cce04d14 Minor error message change in core. 2012-12-12 03:09:02 +00:00
James Yonan
400b7324da In Android client, added a custom error dialog for
TAP-based tunnels not supported.
2012-12-12 02:19:07 +00:00
James Yonan
923908c19a Minor doc update. 2012-11-27 04:00:30 +00:00
James Yonan
9f18b28f86 Misc build system changes to support OpenSSL. 2012-11-27 03:05:46 +00:00
James Yonan
b7e496f5b5 Add switch to build PolarSSL as shared lib. 2012-11-26 19:04:46 +00:00
James Yonan
5ea06010c5 Get PolarSSL-based client and test builds working on Linux again. 2012-11-26 18:53:12 +00:00
James Yonan
e51e5421cf Updated OpenSSL driver to feature equivalance with
PolarSSL driver.

Updated Linux build.

Added badcert.ovpn test profile to trigger certificate
verification error.
2012-11-26 07:46:09 +00:00
James Yonan
d5874f4684 Misc client and pre-server cleanup. 2012-11-26 01:51:24 +00:00
James Yonan
4a72d62592 Minor fixes so that serv.cpp will compile. 2012-11-24 03:21:26 +00:00
James Yonan
fb882e7a61 Head comment added to openvpn/applecrypto/util/reachable.hpp 2012-11-23 06:35:16 +00:00
James Yonan
3a16bc0248 Move unused files out of source tree. 2012-11-23 06:33:27 +00:00
James Yonan
4d9a751af2 Added head comments to all source files.
Minor reorganization of unicode code.
2012-11-23 06:18:43 +00:00
James Yonan
c3df841fa6 Core changes for password save support. 2012-11-18 18:53:10 +00:00
James Yonan
94680833e0 Implement options for allowPasswordSave:
setenv ALLOW_PASSWORD_SAVE 0|1
  allow-password-save 0|1

By default, allowPasswordSave is true.
2012-11-18 08:55:27 +00:00