James Yonan
1f5e50d733
Implemented OpenVPNClient stats methods.
...
Simplified autologin sensing.
Java test client will now dump stats on exit.
2012-02-12 23:09:28 +00:00
James Yonan
f13ed3e7a8
Implemented Java client using Swig.
2012-02-11 14:02:51 +00:00
James Yonan
aa35d332ff
Initialize OpenSSL "auto" engine in InitProcess::init().
...
Workaround bug in OpenSSL <= 0.9.8 that caused class DH
compile fail.
2012-02-10 14:25:52 +00:00
James Yonan
adbc10fb5e
Bug fixes:
...
* raise default headroom/tailroom to 512 for worst-case compression
expansion
* for TCP connections use async_connect instead of connect
* for Time and Time::Duration, handle subtraction reasonably with
infinite values
* handle possible infinite duration in to_posix_duration
* fix overflow in Time::Duration::to_milliseconds
* call Base::update_now() in ClientProto::start
2012-02-07 20:52:40 +00:00
James Yonan
f57c9da3a8
Added QUIET option to proto.cpp.
...
Other minor fixes to proto.cpp.
2012-02-07 12:56:32 +00:00
James Yonan
6674709aba
Added ClientConnect class which implements an "always-try-to-reconnect"
...
approach, with remote list rotation. Only gives up on auth failure.
2012-02-07 11:37:35 +00:00
James Yonan
231bd0f21a
Top-level client refactoring, to move configuration functionality
...
from cli.cpp to ClientOptions in openvpn/client/cliopt.hpp.
2012-02-06 20:39:10 +00:00
James Yonan
f9ae757e1a
Added "remote" option list handling.
...
Added ClientProtoTerminateCallback abstraction to ClientProto.
Added ClientProto::Config for configuration parameters, rather than
passing parameters individually to ClientProto constructor.
2012-02-06 08:28:05 +00:00
James Yonan
e7a5d9f55b
Start process of moving client logic out of cli.cpp into
...
general-purpose classes.
Rename ProtoStats to SessionStats and make it more flexible
by using an abstract base class model.
Add a client event queue for the beginnings of a client-backend
API.
Added logic to ProtoContext to invalidate session on certain
kinds of errors in TCP that would be normally be okay in UDP
such as HMAC_ERROR, DECRYPT_ERROR, etc.
Add some alignment adjustment logic for READ_LINK_TCP (3 bytes)
and READ_LINK_UDP (1 byte).
2012-02-04 10:24:54 +00:00
James Yonan
94cdd50aee
Added support for pushed option continuations.
2012-01-31 23:30:19 +00:00
James Yonan
b31a80da6b
Added compression methods LZO, LZ4, and Snappy.
...
Note that only LZO has been tested yet.
2012-01-31 11:15:21 +00:00
James Yonan
5ac932f842
Added LZ4 test case to compression benchmark.
2012-01-30 08:47:32 +00:00
James Yonan
3dfa240849
Added compression benchmarks for LZO vs. Snappy.
...
Revamped vars-x scripts and build.
Added feature to cli.cpp to write a packet log for
compression benchmarking.
2012-01-30 07:08:26 +00:00
James Yonan
24483aa4b6
Added vars-linux-openssl.
...
Reduce debugging verbosity in cli.cpp.
2012-01-28 03:45:28 +00:00
James Yonan
dd1c850898
Minor doc/scripting changes.
2012-01-28 01:32:59 +00:00
James Yonan
89f0a186e2
Enhanced build script for cross-compile scenarios.
...
Minor doc changes.
2012-01-28 00:42:10 +00:00
James Yonan
98b159a35a
Added Windows build script
2012-01-27 08:06:44 +00:00
James Yonan
d9e8a028c8
Ported core to Windows except for TAP driver support.
2012-01-25 08:32:27 +00:00
James Yonan
b457ec9d18
Windows build system now builds OpenSSL and Boost.
2012-01-24 23:05:44 +00:00
James Yonan
f7067d817c
Added constant-time memcmp.
2012-01-24 01:54:35 +00:00
James Yonan
667297ffcc
Added null tun class for testing which is defined when
...
either (a) the platform has no native tun class or
(b) OPENVPN_FORCE_TUN_NULL is defined.
2012-01-21 17:25:32 +00:00
James Yonan
29bc40bf09
Added TCP transport support.
...
Disable retransmission of control channel packets
when running in TCP mode.
2012-01-20 23:13:48 +00:00
James Yonan
75943dc2a4
Linux changes for new IP address classes.
2012-01-11 06:56:49 +00:00
James Yonan
bd4673c60f
Added IP address classes for IPv4/v6.
...
Implemented get_default_gateway() for Mac OS X.
2012-01-11 06:15:32 +00:00
James Yonan
e5c2791c65
Ported cli.cpp to Mac. Still a couple fixmes to address.
2012-01-05 07:47:24 +00:00
James Yonan
648298d17a
Completed client refactoring to make polymorphic abstraction
...
layer for transport and tun objects.
2012-01-04 15:58:31 +00:00
James Yonan
d7039586dd
Made client transport layer polymorphic.
2012-01-03 08:04:41 +00:00
James Yonan
e4053d0bd9
More ReadHandler tweaks + lambda tests.
2012-01-02 07:08:00 +00:00
James Yonan
5c29216c63
Unvirtualize udp_read_handler and tun_read_handler.
2012-01-02 02:26:11 +00:00
James Yonan
a20651efbf
Make DNS resolution asynchronous.
2012-01-02 01:58:00 +00:00
James Yonan
3f5c9c330c
Redid tun/udp read handlers to use virtual functions rather
...
than function objects.
2012-01-01 22:53:38 +00:00
James Yonan
cd13bb745f
Minor file reorg/cleanup:
...
* link renamed to transport
* moved common/addr.hpp and common/iostats.hpp to unused
2011-12-31 19:49:43 +00:00
James Yonan
a13f44199e
minor changes to platform.hpp.
2011-12-31 19:44:50 +00:00
James Yonan
83f057b6db
Temporarily factor out linkbase.hpp.
2011-12-31 18:47:18 +00:00
James Yonan
161bbb241d
Added BidirObjBase + test code.
2011-12-30 02:05:07 +00:00
James Yonan
affa534dce
Added enable_strict_openvpn_2x() method to ProtoContext.
2011-12-29 21:54:12 +00:00
James Yonan
ac32190acf
Minor changes to proto.cpp on Apple to conform with new
...
SSL context Config class semantics.
2011-12-18 11:33:15 +00:00
James Yonan
7371bd8e14
First working version of cli that can be entirely driven from config
...
file. Currently limited to UDP, runs only on Linux, and supports
pushed redirect-gateway but not route directives.
2011-12-18 10:50:08 +00:00
James Yonan
fb163b65f4
ProtoContext object can now be reused via reset() method.
...
Fixed rare bug where client receives auth, goes ACTIVE, but the ACK
response back to the server is dropped causing the server to receive
post-ACTIVE app messages from the client while it's still stuck
in the S_WAIT_AUTH_ACK state.
2011-12-17 10:53:21 +00:00
James Yonan
6260957c37
Added AES-NI support.
...
Disable logging in Packet ID code unless OPENVPN_DEBUG_PACKET_ID
is defined.
2011-12-17 05:06:39 +00:00
James Yonan
e0b96357fb
First working version of core (testcli.cpp).
2011-12-16 17:20:46 +00:00
James Yonan
990231b226
First successful negotiation with AS.
...
Still need to parse and apply PUSH_REPLY options.
2011-12-16 10:02:15 +00:00
James Yonan
a1033bc2a8
Extended dump_packet to handle DATA_V1 packets as well.
2011-12-15 09:14:56 +00:00
James Yonan
c8f7b0ff2f
Keepalive implementation.
2011-12-15 08:48:14 +00:00
James Yonan
3bcc32f696
Implemented auth methods in ProtoContext.
2011-12-14 16:20:07 +00:00
James Yonan
44ee74f374
Added compression framework.
...
Implemented LZO_STUB compressor.
Added methods to generate options and peer info strings.
2011-12-14 11:34:33 +00:00
James Yonan
3f73d56afb
Added some string parsing classes/functions for parsing OpenVPN options
...
given as a comma-separated list.
2011-12-13 19:51:29 +00:00
James Yonan
1b5fa38adb
Comment additions.
...
Catch buffer exceptions and increment BUFFER_ERRORS.
2011-12-13 11:13:27 +00:00
James Yonan
1aa65c259b
Implemented soft reset in proto.hpp.
2011-12-13 04:46:56 +00:00
James Yonan
bade2e77f2
Added dirty bit to KeyContext.
2011-12-11 10:27:02 +00:00