James Yonan
da5927761c
In split.hpp, use std::move where possible.
2015-06-03 23:48:36 -06:00
James Yonan
87a2a684ce
Allow callers of split_host_port() to get the actual
...
integer port number.
2015-06-03 23:46:11 -06:00
James Yonan
94260d47c2
In rc.hpp, add debugging mode enabled by OPENVPN_RC_DEBUG that
...
will log info about objects being managed.
2015-06-01 23:35:03 -06:00
James Yonan
803b91724b
In asiodispatch.hpp, added class AsioDispatchResolveArg.
2015-06-01 23:31:36 -06:00
James Yonan
bceb5be362
Add noexcept to some methods in process.hpp and redir.hpp
...
that need to run in an async-signal context, i.e. between
fork on the child side, and execve.
2015-05-27 13:54:10 -06:00
James Yonan
16bb7df1d2
Added support for weak pointers to rc.hpp.
2015-05-26 22:45:24 -06:00
James Yonan
adb617c40a
Refactored daemon.hpp and process.hpp, adding a more
...
general-purpose stdin/stdout/stderr redirection
class.
2015-05-26 15:22:22 -06:00
James Yonan
be2922de39
Refactored methods for parsing/validating hosts/ports
...
into openvpn/common/hostport.hpp
2015-05-19 15:01:53 -06:00
James Yonan
e609e318ca
Renamed openvpn/common/port.hpp -> openvpn/common/hostport.hpp
2015-05-19 13:33:29 -06:00
James Yonan
b75c780cab
Renamed boost::intrusive_ptr<T> usage to RCPtr<T>.
2015-05-17 21:26:53 -06:00
James Yonan
35ac9f6229
Renamed types.hpp to size.hpp since it now only defines
...
size_t and ssize_t.
2015-05-17 13:27:34 -06:00
James Yonan
e494846f7d
Moved count_t to its own header file.
2015-05-17 13:17:24 -06:00
James Yonan
5d1bc1c952
Moved array_size() function to its own header file.
2015-05-17 12:57:23 -06:00
James Yonan
fe6fcefa61
C++11 : rename NULL to nullptr
2015-05-17 02:53:37 -06:00
James Yonan
68b8f12b25
Refactored ScopedPtr usage to std::unique_ptr.
...
Removed ScopedPtr.
2015-05-17 01:41:16 -06:00
James Yonan
fd6892f8fa
Added AsioBoundSocket -- an Asio TCP socket that can be configured
...
so that open() method always prebinds the socket to a given local
address. Useful for TCP clients.
2015-05-15 13:33:56 -06:00
James Yonan
53e6af884a
In OptionList, added get_optional_relaxed() and
...
get_default_relaxed() methods.
2015-05-13 21:55:32 -06:00
James Yonan
970a41757d
Modified OPENVPN_OSTREAM() macro to not require data
...
type to be convertible to std::string.
2015-05-10 20:05:00 -06:00
James Yonan
3bcf8743c1
More conversions of threads/mutexes from boost to C++11 std.
...
As part of this work, removed openvpn/common/thread.hpp
2015-05-10 20:04:22 -06:00
James Yonan
7a6053f4b5
class RC: redefined thread_safe_refcount in a C++11 way.
2015-05-10 15:33:06 -06:00
James Yonan
e7b3af3e01
class Base64: added encode() method that accepts a raw unsigned
...
char * buffer.
2015-05-10 15:30:30 -06:00
James Yonan
6baf23462f
Added render_hex_sep() method that allows a separator between
...
each byte.
2015-05-01 13:41:25 -06:00
James Yonan
d441693725
Added a second SetUserGroup constructor that accepts std::string
...
arguments instead of const char *. Made both constructors
explicit.
2015-04-30 10:34:07 -06:00
James Yonan
36576a26c5
Break up existing daemonize() method into two methods:
...
1. log_setup -- redirect stdin/stdout/stderr
2. daemonize -- actually call daemon()
For compatibility, the old daemonize() method is still
available and is now internally composed using the new
methods.
2015-04-30 10:29:51 -06:00
James Yonan
6b8d51e5d9
Added event_loop_wait_barrier().
2015-04-25 10:09:08 -06:00
James Yonan
46498b6bbf
Refactored RunContext to eliminate possibility of race between
...
set_thread and set_server.
2015-04-25 10:03:33 -06:00
James Yonan
709486cd1a
Added some extra logging to RunContext::do_cancel() to show
...
number of threads we called thread_safe_stop() on compared
to the total number of threads.
2015-04-24 01:26:42 -06:00
James Yonan
c7bc3aff22
Don't use #include <cassert>, instead throw Exception()
...
instead of assert().
2015-04-24 01:24:48 -06:00
James Yonan
0fde33173a
C++11 update: mass replace of boost::uint/int to std::uint/int.
2015-04-23 17:55:07 -06:00
James Yonan
a51c0bf0bf
Mostly complete transition from boost::thread to std::thread.
2015-04-23 17:07:56 -06:00
James Yonan
89cf6bb369
Changed BOOST_ASSERT usage to assert() (#include <cassert>).
2015-04-23 15:42:12 -06:00
James Yonan
36550cd35e
Update to C++11 noncopyable semantics.
...
Instead of inheriting from boost::noncopyable,
use the C++11 delete qualifier:
Class(const Class&) = delete;
Class& operator=(const Class&) = delete;
2015-04-23 15:10:43 -06:00
James Yonan
f12c2ab7eb
C++11 update -- in rc.hpp, change boost::detail::atomic_count
...
to std::atomic<long>.
2015-04-23 14:37:28 -06:00
James Yonan
9d9c51d6f4
C++11 update -- converted boost::unordered_map usage to
...
std::unordered_map.
2015-04-23 14:08:54 -06:00
James Yonan
4b02f237eb
minor C++11 update: Changed BOOST_STATIC_ASSERT to static_assert.
2015-04-23 13:03:09 -06:00
James Yonan
069de90ffd
minor C++11 updates:
...
* rename BOOST_NOEXCEPT to noexcept
* verify that certain classes are noexcept move constructable
including Option, Buffer, BufferAllocated, RunContext::Thread
2015-04-23 12:49:25 -06:00
James Yonan
95e11e9172
Added openvpn/common/stat.hpp with file_exists() method.
2015-04-22 17:53:12 -06:00
James Yonan
b27ce6ad93
New string methods:
...
string::unix2dos() -- convert \n to \r\n
string::split_host_port() -- split host:port
2015-04-22 01:51:57 -06:00
James Yonan
d6fa2307b1
Use a switch in string::is_space().
2015-04-22 01:51:07 -06:00
James Yonan
664b276716
render_hex() methods now take an optional caps argument to
...
control whether hex chars a-f are rendered as lowercase or
uppercase.
Renamed the template form of render_hex() to render_hex_generic(),
to avoid ambiguity from new caps parameter.
2015-04-21 00:42:15 -06:00
James Yonan
1e54bba2bc
Added ServerThreadBase to runcontext.hpp.
2015-04-19 11:20:47 -06:00
James Yonan
7b4d98d1eb
Added missing include to asiodispatch.hpp.
2015-04-15 22:18:32 -06:00
James Yonan
d1bd2d8d3c
Added operator[] to ScopedPtr.
2015-04-12 10:52:59 -06:00
James Yonan
6f35bbd9d1
Extend daemonize() to do initial log rotate.
2015-04-09 21:45:19 -06:00
James Yonan
f2d03f292a
Added string::replace_spaces method.
2015-04-09 15:22:38 -06:00
James Yonan
a206d08820
Added OptionList::get_optional_noexcept method.
2015-04-09 15:21:56 -06:00
James Yonan
1d6096609b
Added additional parse_user_pass() convenience method.
2015-03-27 01:20:30 -06:00
James Yonan
688588bd12
Added sockopt.hpp with common setsockopt functions
...
(reuseport, reuseaddr, tcp_nodelay).
2015-03-19 14:04:31 -06:00
James Yonan
f683eca1d7
Added SignalBlockerDefault to handle common usage case.
2015-03-19 13:58:31 -06:00
James Yonan
987867082c
Use C++11 std::thread (instead of boost::thread) if USE_STD_THREAD
...
if defined.
2015-03-19 13:56:38 -06:00
James Yonan
d1072035b3
Added openvpn/common/inotify.hpp.
...
Created initial method INotify::mask_to_string() to convert
an inotify mask to a human-readable string for debugging.
2015-02-10 15:58:58 -07:00
James Yonan
c8ffeea283
Added string::len_without_trailing_nulls method.
2015-02-10 15:57:42 -07:00
James Yonan
26b792436a
Added ScopedFD::reset() method.
2015-02-10 15:57:09 -07:00
James Yonan
58031408d7
ScopedFD::close() should not be virtual.
2015-02-10 15:56:49 -07:00
James Yonan
01a381ef44
Added nondigit_term bool to parse_number() to allow parsing
...
of numbers that are terminated by non-number chars. Previously
only '\0' could terminate a number.
2015-02-10 15:55:32 -07:00
James Yonan
2226a34850
In asiodispatch.hpp, added dispatcher for asio async_read
...
without argument: asio_dispatch_read_noarg().
2015-02-10 15:54:34 -07:00
James Yonan
90d98c8fac
class OptionList now inherits from RCCopyable.
2015-02-03 17:34:13 -07:00
James Yonan
d5f249b3a4
Added class RunContext for managing threads in a
...
multi-threaded server.
2015-02-01 01:48:18 -07:00
James Yonan
169612f842
Add virtual void post_close() method to ScopedFD so derived
...
classes can do post-close actions.
2015-01-24 20:07:36 -07:00
James Yonan
79b9deb2bc
Added SIGUSR1/SIGUSR2 to class ASIOSignals.
...
Also added register_signals_all() method.
2015-01-16 01:52:59 -07:00
James Yonan
69d0a9cefb
Added SetUserGroup class for downgrading UID/GID.
2015-01-14 23:50:40 -07:00
James Yonan
fbfc84f460
Refactored PThreadCond and added PThreadBarrier for cases
...
where all threads need to reach a known point before
executing some action.
2015-01-14 23:17:20 -07:00
James Yonan
8d61382731
Core version number updated to 3.0.3.
2015-01-14 12:12:34 -07:00
James Yonan
915d0220a4
Added methods for daemonization and redirecting stdout/stderr
...
to a log file.
2015-01-13 23:18:57 -07:00
James Yonan
e0910bf6c4
Added PolarSSL AuthCert support (server-side only).
2015-01-12 23:20:23 -07:00
James Yonan
e817a9dc0b
Added dump_hex methods.
2015-01-12 23:16:51 -07:00
James Yonan
9004e8cbea
Added PThreadCond, a wrapper for pthread conditions.
2015-01-12 18:39:32 -07:00
James Yonan
58de6a371d
Added class OptionList convenience method get_num()
...
with range checking.
2015-01-12 18:35:53 -07:00
James Yonan
9965704558
Added write_string() method to write a std::string to a file.
2015-01-12 18:34:10 -07:00
James Yonan
2f65d5b550
Added enum_dir() function to return filenames in a directory
...
as a vector of strings.
2015-01-08 15:18:55 -07:00
James Yonan
93ced6f8d9
Added string::root() function to return the
...
non-extension part of the filename.
2015-01-08 15:16:51 -07:00
James Yonan
d51c6c6dc4
Added render_hex_number() function to hexstr.hpp.
2015-01-08 15:16:11 -07:00
James Yonan
c2c7292a70
Updated copyright to 2015.
2015-01-06 12:56:21 -07:00
James Yonan
47236d5ab5
Updated OPENVPN_VERSION to "3.0.2".
2015-01-05 19:25:18 -07:00
James Yonan
0acb038808
Added class OptionList convenience methods get_default()
...
and get_num().
Also, get_optional() should return a std::string, not a
const std::string.
2014-12-29 21:54:23 -07:00
James Yonan
464690aa6b
Added class ServerPushList for keeping track of
...
push "..." directives on the server.
2014-12-29 21:51:08 -07:00
James Yonan
1789443603
Updated core version to 3.0.1.
2014-12-21 11:03:09 -07:00
James Yonan
ea29858135
Added Option::get_default method.
2014-12-13 21:20:29 -07:00
James Yonan
81a7f2ad75
In asiodispatch.hpp, added dispatcher for asio
...
async_accept with argument.
2014-12-13 21:19:18 -07:00
James Yonan
f5ff65562e
OptionList, Option:
...
* Make use of C++11 move semantics for optimization, especially
where std::vector<Option> is pushed onto OptionList.
* Fixed bug in Option::render() where arguments would be
printed without any delimiter if RENDER_BRACKET flag was
absent.
* Added parse_from_peer_info() method, for parsing peer info
string received from client.
2014-10-30 10:36:33 -06:00
James Yonan
758ac9daa0
Templatized UTF-8 methods such as Unicode::utf8_printable to
...
work on arbitrary string types (such as upcoming SafeString).
2014-10-30 10:18:30 -06:00
James Yonan
43f0a6a636
Added a more human-readable render_hex method: render_hex_pretty.
2014-10-25 22:25:11 -06:00
James Yonan
0c91391bae
Added C++11 array_size method that is constexpr so it can be used
...
for compile-time asserts.
Use C++11 static_assert and array_size to verify size consistency
of tables in openvpn/error/error.hpp.
2014-10-23 13:44:52 -06:00
James Yonan
5826910bbe
Refactored server-side client instance object (ServerProto::Session)
...
to use Link abstraction (openvpn/common/link.hpp) to link with
transport layer (and other layers such as routing and management
as development progresses).
2014-08-19 15:41:59 -06:00
James Yonan
1531189578
class BackRef is no longer used. Move it to unused directory.
2014-08-19 09:20:39 -06:00
James Yonan
ea406b83c8
Added flag OPENVPN_RC_USERDEF to allow for debug implementations
...
of intrusive_ptr_add_ref and intrusive_ptr_release.
2014-08-19 00:57:38 -06:00
James Yonan
170fc59508
Refer to abort() as std::abort().
2014-08-18 02:55:30 -06:00
James Yonan
516cd89a76
Added class SignalBlocker for selective blocking of posix signals.
2014-08-17 22:35:51 -06:00
James Yonan
4e39a533e9
Added new constant-time memory comparison function crypto::memneq
...
to replace memcmp_secure. crypto::memneq benefits from insights
gained during the development of crypto_memneq for the Linux kernel.
2014-08-17 22:09:12 -06:00
James Yonan
6e5e84d2d6
Added new function hash_combine_data.
2014-08-15 22:19:17 -06:00
James Yonan
03d74ed507
Annotate RC and RCCopyable methods with BOOST_NOEXCEPT
...
to play well with std::function small object optimization.
2014-08-15 22:05:25 -06:00
James Yonan
08fff1b640
For class String (RC-inheriting version of std::string), forgot
...
to make the inheritance of RC<thread_unsafe_refcount> public.
2014-08-14 11:24:07 -06:00
James Yonan
aeba511846
Added parse_port function.
2014-08-14 11:22:33 -06:00
James Yonan
03dd9aa766
Added write_binary method to file.hpp.
2014-08-11 18:02:21 -06:00
James Yonan
b3245b4590
Simplified class BackRef and added test code.
2014-08-10 20:59:21 -06:00
James Yonan
4b5cbc4cc6
Added AsioDispatchComposedConnect for dispatch/callback
...
to an Asio ComposedConnectHandler.
2014-08-10 17:17:11 -06:00
James Yonan
564dcdc2cf
Added C++11 move construction/assignment to CF::Wrap,
...
BufferAllocatedType, ScopedPtr, and ScopedFD.
2014-08-10 16:53:39 -06:00
James Yonan
2c6d972ad6
Added AGPL copyright/licensing language.
2014-07-20 21:22:06 -06:00
James Yonan
820b0720ff
Core: Fixed issue in base64.hpp with typo in expression that
...
terminates loop through char array.
This is functionally a no-op because the
(*p == equal || is_base64_char(*p)) term will effectively
terminate the loop when *p != '\0' because is_base64_char(0)
returns 0.
2014-07-07 14:46:44 -06:00
James Yonan
5c009430bb
New implementation of tunPersist for Mac OS X based on FailsafeBlock
...
strategy, where the default route and DNS client are redirected to
localhost during pause/reconnect.
2014-03-30 23:21:28 -06:00
James Yonan
40a1842502
Implemented non-echoed console prompt for password in cli wrapper
...
(Unix platforms only).
2014-03-28 18:53:15 -06:00
James Yonan
91f82f1276
cli wrapper now handles SIGUSR1/SIGUSR2:
...
SIGUSR1: print stats
SIGUSR2: toggle pause/resume state
2014-03-24 16:53:19 -06:00
James Yonan
c1cf0d7375
In ActionList::execute(), catch exceptions and log them.
2014-03-06 00:27:41 -07:00
James Yonan
9e35e41fb4
Added ActionThread class to allow Action objects to be
...
executed asynchronously in a worker thread.
Needed to make some changes to logthread as well
to allow log context to be made available to
the worker thread.
2014-03-06 00:27:41 -07:00
James Yonan
074dbafa27
Ported minicrypto lib to OS X for PolarSSL optimization.
...
These scripts
scripts/mac/build-minicrypto
scripts/mac/build-polarssl
will now build PolarSSL (on OSX) with libminicrypto linkage.
Currently, only SHA1/256/512 implementations from OpenSSL are
built in libminicrypto. We leave the current PolarSSL AES
implementation as-is since it now implements AES-NI.
Also added portable openssl/build-openssl script.
2014-03-04 17:42:00 -07:00
James Yonan
6900658a39
Fixed issue where OPENVPN_SIMPLE_EXCEPTION_INHERIT
...
instantiation was failing due to lack of a default constructor.
2014-02-27 21:21:54 -07:00
James Yonan
28bf9b2a15
Added full support for OpenVPN 3 on Mac OS X (10.6 and higher)
...
including DNS and IPv6 support.
2014-02-27 18:34:17 -07:00
James Yonan
33f6153f34
Added ScopedPtr<T>::ref() method.
2014-02-20 17:10:57 -07:00
James Yonan
e8be2d6956
Added operator()() convenience method to ScopedPtr to return
...
raw pointer.
2014-02-16 00:44:49 -07:00
James Yonan
c91beca441
Moved OPENVPN_STRINGIZE(x), a macro that puts double-quotes
...
around x, into its own source file in common. Modified
exception.hpp to reference it.
2014-02-16 00:37:50 -07:00
James Yonan
4f4571ee30
More additions to TunPersist for Windows:
...
* Allow DestructorBase object to be bound to TunPersist-owned
SCOPED_OBJ object, so that DestructorBase::destroy() is guaranteed
to be called before SCOPED_OBJ destruction. This is used as a
mechanism to remove routes and other properties of the Windows
TAP adapter that must be unwound when the TAP adapter is closed.
* Added ScopedAsioStream to allow an Asio stream object to
be managed by a TunPersist object.
* Added TunPersistAsioStream which supports that subset of the Asio
stream interface required by TunIO, and is intended to wrap a
ScopedAsioStream embedded in a TunPersist object.
It is used primarily on Windows to wrap the TAP interface HANDLE
in way that plays well with Windows I/O completion ports (once
a HANDLE is bound to an I/O completion port it cannot be unbound).
2014-02-16 00:14:36 -07:00
James Yonan
a9a60a2283
ScopedFD::close() should return a standard status independent of the
...
underlying implementation. So return boolean true on successful
close (or no-op) and false on error.
2014-02-11 19:55:12 -07:00
James Yonan
09681f9aea
Added ScopedFD::defined_static method.
2014-02-11 00:24:40 -07:00
James Yonan
279c6d5994
Added static ScopedFD::undefined() method to return the undefined
...
base_type value, i.e. -1. This is intended to smooth out the
differences between ScopedFD and (upcoming) ScopedHANDLE APIs,
so that they can be used as template types.
2014-02-10 22:59:02 -07:00
James Yonan
0255621670
Added a getopt_long implementation for Windows, since MSVC does
...
not provide one.
2014-02-08 00:13:23 -07:00
James Yonan
ecc122feed
In cli.cpp, avoid compiling signal stuff when on Windows.
2014-02-08 00:13:23 -07:00
James Yonan
03cf311f75
Windows: fix some MSVC compiler warnings.
2014-02-08 00:13:23 -07:00
James Yonan
ea4e95bf24
Refactored find_first_set and find_last_set for both
...
Unix and Windows support.
2014-02-07 21:22:29 -07:00
James Yonan
7ce7b73940
Added opportunistic long typedefs (olong and oulong) that are
...
32 bits on 32-bit machines and 64 bits on 64-bit machines.
This is needed because on Windows (MSVC), long is 32 bits
even when building in x64 mode.
2014-02-07 21:11:32 -07:00
James Yonan
b80e4af571
core: recognize backslash as a directory separator char on all
...
platforms, including Unix. This is necessary to allow ProfileMerge
to operate correctly when Windows profiles are merged on Unix.
2014-01-30 12:31:32 -07:00
James Yonan
d20fb9a47f
core: added platform info method to OpenVPN 3 API:
...
// Returns platform description string
static std::string platform();
2014-01-14 16:28:29 -07:00
James Yonan
baca5e05d5
Core proxy changes:
...
Added support for "http-proxy" and "http-proxy-option" directives
in the main section of the config file, outside of <connection>
blocks.
Added <http-proxy-user-pass> multiline directive for inlining
proxy creds:
<http-proxy-user-pass>
user
pass
</http-proxy-user-pass>
Merge class now knows how to expand creds file inline.
For example,
http-proxy ntlm.yonan.net 3128 auth.txt
is converted to:
http-proxy ntlm.yonan.net 3128 auto
<http-proxy-user-pass>
user
pass
</http-proxy-user-pass>
2013-12-30 16:17:22 -07:00
James Yonan
b6d17ba69e
Added Option::escape() method.
...
Minor string/option refactoring.
2013-12-28 20:20:21 -07:00
James Yonan
2cbe310f35
OpenVPN 1.0.4 build 114 (iOS)
...
Dusted off LZ4 implementation and enabled in iOS
and cli.cpp builds.
Tested LZ4 as well with OpenVPN 3 acting as the client,
with a hacked AS and OpenVPN 2.3 (JY) acting as the server
(see lz4hack patches).
2013-12-27 22:21:22 -07:00
James Yonan
1481327d72
OpenVPN 1.0.2 build 98 (iOS)
...
Ported iOS client and OpenVPN 3 core to ARM-64.
Now building a "fat binary" with Xcode 5.0.1 that
targets arm7, arm7s, and arm64.
Outstanding issues:
* IPv6 doesn't route through tunnel on iOS7
* Client doesn't install on iOS 5.1.1.
2013-11-11 12:33:35 -07:00
James Yonan
f290f9feee
Extended IP.Addr class to handle extents as IP.Addr objects. This
...
extends the IP.Addr class to act more-or-less as a generic 128-bit
unsigned integer class.
2013-07-29 05:48:03 +00:00
James Yonan
a5210ce061
In ipv6-vps.ovpn, use the setenv opt form of the
...
tls-version-min directive:
setenv opt tls-version-min 1.2 or-highest
In 3.0 core, properly set OPENVPN_VERSION to 3.0.
Updated make-community to automatically push at
end of build.
2013-06-11 02:04:07 +00:00
James Yonan
cf39be0516
Log unused options, i.e. options specified in config file that were
...
unrecognized, ignored, or unused.
This behavior is somewhat different (by design) to 2.x branch, which
will raise a fatal exception if an unrecognized option is
encountered.
2013-06-10 00:42:19 +00:00
James Yonan
906584ba3b
Support "setenv opt" prefix before directives, where
...
its presence indicates that the directive is optional,
i.e. if a client doesn't understand the directive, it
should simply ignore it.
2013-06-08 16:10:35 +00:00
James Yonan
e92899c490
Relax options parser a bit and follow OpenVPN 2.x behavior
...
where if more than one instance of an option exists, and
a single instance of the option is required, use the last
instance. Previously we would raise an exception in this case.
2013-06-03 06:31:22 +00:00
James Yonan
bbaaf65b0a
Fixed options parsing issue if non-aggregate option was
...
specified in profile as well as pushed by server
(the pushed version should win).
2013-05-25 01:13:11 +00:00
James Yonan
d3c592c991
For iOS (and other platforms in the future), added the capability
...
for server to push proxy options, e.g.:
push "dhcp-option PROXY_HTTP 10.144.5.14 3128"
push "dhcp-option PROXY_HTTPS 10.144.5.14 3128"
push "dhcp-option PROXY_BYPASS www.yonan.net staging.openvpn.net"
push "dhcp-option PROXY_AUTO_CONFIG_URL http://www.yonan.net/proxy.pac "
2013-05-24 20:04:37 +00:00
James Yonan
ffe53114ab
Copy ProtoConfig for each connection within a client session so that
...
modifications due to server push will not persist across client
instantiations.
Added RCCopyable object, a variation on RC that allows copying and
assignment.
2013-04-21 20:29:14 +00:00
James Yonan
964e9553b5
Added more functionality to IP:Addr classes so that they can be
...
wrapped by swig and used in the Access Server to represent IPv4
and IPv6 addresses.
2013-04-04 00:51:25 +00:00
James Yonan
82d2dfb280
OpenVPN 1.0.1 build 79 (iOS)
...
OpenVPN 1.1.10 build 42 (Android)
Change to memcmp_secure: declare memory regions as volatile
to avoid potential compiler optimizations from leaking
timing info.
2013-03-22 18:02:45 +00:00
James Yonan
cebc610e8e
Implemented route-nopull (second attempt).
2013-03-14 02:54:58 +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
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
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
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
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
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
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
5047d251a0
Fixed iOS regression caused by addition of support for non-unified
...
profile merge, where profiles that succeeded in the merge phase
but failed in the options parse phase would crash the UI.
2012-11-15 16:17:46 +00:00
James Yonan
0d16acd0bb
Minor exception code cleanup.
2012-11-14 16:41:33 +00:00
James Yonan
daa97ededd
Added support for <connection> blocks in profile.
2012-11-14 05:12:48 +00:00
James Yonan
31d87f09a4
Extend config file parser to recognize end-of-line comments
...
that start with # or ;
To pass these chars as part of an argument, make sure to quote
them.
2012-11-14 03:25:59 +00:00