Commit Graph

351 Commits

Author SHA1 Message Date
Sergey Abramchuk
336b773a3d Merge branch 'develop' into feature/documentation
* develop: (32 commits)
  Add header guards
  Update project settings
  Update tests
  Fix crash if empty data was provided
  Apply style guide rules to the remaining classes
  Update tracking property name regarding style guide
  Apply style guide rules to the openvpn configuration class
  Add missing import of reachability status header
  Apply style guide rules to certificate, key and reachability classes
  Refactor generation of mbedTLS errors
  Add Nullability Annotations to OpenVPNAdapterPacketFlow (#43)
  Refactor generation of OpenVPN adapter errors
  Refactor implementation of OpenVPNAdapter class
  Redefine networkSettings as method instead of property
  Return false if URL is nil
  Initializer shouldn't return nil, and return socket setup error during socket configuration
  Add socket setup error
  Rename a few delegate methods and fix memory warning
  Add extra spaces and empty lines
  Add pragma marks
  ...
2018-01-23 17:25:19 +03:00
Sergey Abramchuk
4a951f626e Merge branch 'feature/cleanup' into develop 2018-01-23 17:24:36 +03:00
Sergey Abramchuk
32ea25ecd7 Add header guards 2018-01-23 17:19:32 +03:00
Sergey Abramchuk
2bb3c1ff8e Update project settings 2018-01-23 17:18:06 +03:00
Sergey Abramchuk
c838baef4d Update tests 2018-01-23 17:17:48 +03:00
Sergey Abramchuk
f22ffdc4f0 Fix crash if empty data was provided 2018-01-23 17:14:03 +03:00
Sergey Abramchuk
badd6d28be Apply style guide rules to the remaining classes 2018-01-23 17:04:32 +03:00
Sergey Abramchuk
c682c2a325 Update tracking property name regarding style guide 2018-01-23 16:11:30 +03:00
Sergey Abramchuk
9c6e1fed2a Apply style guide rules to the openvpn configuration class 2018-01-23 16:02:16 +03:00
Sergey Abramchuk
cde1208002 Add missing import of reachability status header 2018-01-18 17:07:51 +03:00
Sergey Abramchuk
7078de3bae Apply style guide rules to certificate, key and reachability classes 2018-01-18 17:00:28 +03:00
Sergey Abramchuk
eff0bccfef Refactor generation of mbedTLS errors 2018-01-18 16:39:41 +03:00
Sergey Abramchuk
761564a028 Merge branch 'feature/cleanup' of github.com:ss-abramchuk/OpenVPNAdapter into feature/cleanup
* 'feature/cleanup' of github.com:ss-abramchuk/OpenVPNAdapter:
  Add Nullability Annotations to OpenVPNAdapterPacketFlow (#43)
2018-01-18 16:27:09 +03:00
Jonathan Downing
2b7680a89e Add Nullability Annotations to OpenVPNAdapterPacketFlow (#43)
* Add Nullability Annotations

* Replace self with strongSelf

* Revert "Replace self with strongSelf"

This reverts commit 9c45dca3da1c86dcffe3f0faf65202da01476912.
2018-01-18 16:26:27 +03:00
Sergey Abramchuk
e4f7152cba Refactor generation of OpenVPN adapter errors 2018-01-17 16:49:44 +03:00
Sergey Abramchuk
96d2ab1850 Refactor implementation of OpenVPNAdapter class 2018-01-17 14:01:09 +03:00
Sergey Abramchuk
c53f9e0d2f Redefine networkSettings as method instead of property 2018-01-17 14:00:13 +03:00
Sergey Abramchuk
c47c5a9c3d Return false if URL is nil 2018-01-17 13:59:45 +03:00
Sergey Abramchuk
a64893cd48 Initializer shouldn't return nil, and return socket setup error during socket configuration 2018-01-17 13:59:08 +03:00
Sergey Abramchuk
4094a097f1 Add socket setup error 2018-01-17 13:58:19 +03:00
Sergey Abramchuk
51440587ad Rename a few delegate methods and fix memory warning 2018-01-17 11:56:38 +03:00
Sergey Abramchuk
c956d61597 Add extra spaces and empty lines 2018-01-17 11:33:05 +03:00
Sergey Abramchuk
d3a2d6ec0c Add pragma marks 2018-01-16 17:08:00 +03:00
Sergey Abramchuk
3eba7cc615 Refactor implementation of OpenVPNPacketFlowBridge class 2018-01-16 17:00:41 +03:00
Sergey Abramchuk
fa2417c4af Change file extension to mm 2018-01-15 17:13:33 +03:00
Sergey Abramchuk
f840b4a046 Move data preparation to the implementation of OpenVPNPacket 2018-01-15 17:13:04 +03:00
Sergey Abramchuk
c19bd1df76 Define OpenVPNPacket class 2018-01-15 16:33:02 +03:00
Sergey Abramchuk
1ca2f3a54f Move definition of OpenVPNAdapterPacketFlow protocol to its own header file 2018-01-15 13:08:54 +03:00
Sergey Abramchuk
2dd1e98e18 Break long comment lines 2018-01-15 12:50:25 +03:00
Sergey Abramchuk
aa6a4bf66b Use forward declaration of events instead of direct import 2018-01-15 12:48:03 +03:00
Sergey Abramchuk
338e5b853d Return definition of OpenVPNAdapterPacketFlow protocol 2018-01-15 12:45:20 +03:00
Sergey Abramchuk
a0702c7d6e Change structure of the project 2018-01-15 12:15:07 +03:00
Sergey Abramchuk
ee5d190087 Fix position of asterix in const definitions and remove nullability specifiers 2018-01-12 14:04:27 +03:00
Sergey Abramchuk
82efe6e021 Add OpenVPNClient files to the project 2018-01-12 13:52:16 +03:00
Sergey Abramchuk
5fd8a82934 Move definition and implementation of OpenVPNClient into separate files 2018-01-12 13:50:44 +03:00
Sergey Abramchuk
3a9c92985d Add code of conduct 2018-01-11 13:34:12 +03:00
Sergey Abramchuk
65f67a3509 Fix incorrect link to the Objective-C++ section 2018-01-11 13:22:32 +03:00
Sergey Abramchuk
e96c2f1aeb Add suggesting enhancements and pull request sections 2018-01-11 13:20:28 +03:00
Sergey Abramchuk
f84aa72270 Add reporting bugs section 2018-01-11 12:57:03 +03:00
Sergey Abramchuk
669077b7c2 Change header styles and add table of contents 2018-01-11 12:14:25 +03:00
Sergey Abramchuk
319992dbc1 Add missing words indicating good examples 2018-01-10 13:26:10 +03:00
Sergey Abramchuk
9fa2529596 Define Cocoa patterns and Objective-C++ conventions 2018-01-10 13:20:30 +03:00
Sergey Abramchuk
86a2622706 Define Cocoa and Objective-C conventions 2018-01-10 12:59:34 +03:00
Sergey Abramchuk
03ac5f0bf3 Define C language conventions 2018-01-10 12:11:47 +03:00
Sergey Abramchuk
c96130c592 Define types and declarations, and comments conventions 2018-01-10 12:04:08 +03:00
Sergey Abramchuk
fe57b04362 Define naming conventions 2018-01-09 17:34:05 +03:00
Sergey Abramchuk
2a72c5fb96 Define style for spacing and formatting 2018-01-08 14:15:59 +03:00
Sergey Abramchuk
fd5811541f Merge branch 'feature/update-dependenies' into feature/cleanup
* feature/update-dependenies:
  Squashed 'OpenVPN Adapter/Vendors/openvpn/' changes from 4095565..3e002c8
2018-01-08 12:02:18 +03:00
Sergey Abramchuk
31ceba3bd6 Merge commit '82fea30fcce1d169de7ec42be84d079e0899519c' into feature/update-dependenies 2018-01-08 11:44:56 +03:00
Sergey Abramchuk
82fea30fcc Squashed 'OpenVPN Adapter/Vendors/openvpn/' changes from 4095565..3e002c8
3e002c8 remove unused Jenkinsfile
16b1055 [OVPN3-140] Update company names in copyrights
6caca2c [OVPN3-140] Relicense back to AGPLv3
4f9ae74 cliproto: react to tls_warnings
546547b Proto: export tls_warnings attribute from SSL session
7cbaa26 SSLAPI: add tls_warning attribute
7ed93a3 clievent: add Warn event class
7a71ba1 win: get 'arch' param value from environment
61bb21b win: make parameter optional
15d66c4 [OVPN3-141] win: disable WPO
97d9c28 [OU-15] mbedtls: remove duplicated code
95aec32 [OU-15] mbedtls: refactor X509Cert to allow reuse der2pem
946753e [OVPN3-135] Win: remove unneeded default route
d7f8c47 nrpt: create separate policy per dns suffix
577b5ca cli.cpp: fix typ0 in define
fc8f89d [OVPN3-129] android: ensure all SWIG files are archived and saved
e143bc0 [OVPN3-129] android: improve build system in order to perform full build
06d23ec [OVPN3-129] build-system: let scripts download dependencies
76bb99c fix usage of to_string() in Android
44c183a time: mute type conversion warnings for UWP client
7d7490c transport: enable socket protect call for UWP
1c003ac transport: pass protocol type to external factory
c0de92c transport: add stop_requeueing method
e2c60c8 android: build core library with MD5 support
3928069 [OVPN3-119] mbedTLS: create INSECURE profile including MD5
4f99310 remove function accidentally duplicated by last merge
b91d841 self-test: add missing includes
19e33c4 [OA-14] mbedTLS: relax x509 date/time format check
f3cf645 [OVPN3-116] disable SSL_CBC_RECORD_SPLITTING
fca9ed2 [OVPN3-105] ParseClientConfig: avoid crash when not all key material is provided
7299fef [OC-42] Android: specify API level on command line
d3da3df android: build client lib for x86 (for emulator)
8e501c5 Update version for mbedTLS and lz4
e57676e ParseClientConfig: export config to json format
9aa715f ParseClientConfig: export configuration to ovpn file format
1eab4cb ParseClientConfig: add helper constructor
71a59e4 ParseClientConfig: store the entire ovpn profile
e0bb85a Transport: convert from transport protocol to config string
2fe56c3 Compress: convert from ctx type to config string
174ee25 OpenSSL: implement stub methods for new private_key_type/length() SSLAPIs
3d57708 mbedTLS: implement private_key_type/length() API
a3210f0 SSLAPI: add private_key_type/length() getter methods
8ffe888 OpenSSL: implement stub methods for new extract_* SSLAPIs
16e9160 mbedTLS: implement extended API for key material extraction
fe3d519 SSLAPI: extend API with methods to extract key material
2b4c850 Debugging: added header and build flag for valgrind run-time extensions.
b948cde ManClientInstance::Factory: added virtual stop() method.
121e975 client API: added portOverride
106981c JSON: allow alternative JSON library implementations
f206ae2 logging: added logdatetime.hpp which prepends date/time to log lines
49e933d Time: added to_double, delta_float, and delta_str methods
569b1da daemon.hpp: added class WritePid for managing pid files
63e9e04 ClientProto: reset CoarseTime object when AsioTimer is canceled
f64b501 Cleanup: allow functor to be passed by value.
ebe2560 RunContext: add configurable exit via EXIT_IN env var for debugging
1fbff4f tls-crypt: revised server-side validate_initial_packet() methods to use a BufferAllocated rather than a Buffer.
0090c51 SSLConst: added new ssl_flags() method which filters out non-ssl flags from given argument.
8379b0a CryptoDCInstance: added new RekeyType PRIMARY_SECONDARY_SWAP and use it in ProtoContext::promote_secondary_to_primary() since it more accurately reflects the underlying implementation.
18f45c2 ManClientInstance::Send: added AuthStatus::Type parameter to disconnect_user() method.
4bba803 Listen::List: added expand_ports() method.
5122e7d Listen::List: in port_offset(), set n_threads to 0 since number-of-threads data for port_offset items isn't really relevant.
4e11a6c StaticKey: added render_to_base64() and init_from_rng() methods.
190ece9 CryptoAlgs: added mode() method.
76e65cf CryptoAlgs: added AEAD_NONCE_TAIL_SIZE constant (set to 8 bytes) to represent the size in bytes of AEAD "nonce tail" normally taken from the HMAC key material.
2738718 compress: added method_to_string() method, i.e. the inverse of parse_method().
7b47f99 compress: since parse_method() performs a linear search on method, reorder so that more frequently used methods appear at the top of the list.
b428f74 library: added integer is_pow2() and log2() methods based on efficient __builtin_ffs and __builtin_clz intrinsics.
4926011 Android: adapt toolchain scripts to new SDK and move to API 26
ad4e995 mbedTLS: use mbedtls API to initialize cert object
908c611 transport: use socket_protect to communicate socket handle on UWP
92a6216 build win: read certain params from env
8166ea8 common: define uwp platform macro
0186bf6 common: report platform name as "uwp"
3f291b0 netconf: disable getting hwaddr for UWP
6365d26 transport: external factory
2ffa0c9 transport: synchronous DNS lookup
2c09c7c cliconnect.hpp: support for AsioWork always on
4f5a04d rand.hpp: allow external entropy source
b19c5da time.hpp: use GetTickCount64 on Vista and newer
712ccfc android: export DEP_DIR via vars files only if not already defined
1b5a784 asio: make sure to switch to DEP_DIR before building
4302651 changes to support android building
6f56b2b Merge pull request #21 from OpenVPN/make_test_proto_deterministic
3a5ef2b travis-ci: make testing binary deterministic
b76882d mbedtls: fix typ0 in exception message
40065a6 avoid "uninitialized variable warning"
f33e7c2 [OVPN3-5] tls-crypt: add tls-crypt support in proto.hpp test unit
74c5f4f [OVPN3-5] tls-crypt: introduce tls-crypt support
389353c proto.cpp: uninit process at the end of the execution
56a831f [OVPN3-5] crypto/ssl: add support for AES-256-CTR
7cbf539 [OVPN3-5] build script: allow user to specify its own mbedTLS folder and LDFLAGS
8ae2a3f Integrate Google Test framework
68ae101 Add swig build to jenkins pipeline
d496311 ovpncli.hpp: inline LogInfo constructor for clarity
96e0d89 Revert "Merged in OVPN3-21-prepend-log-record-with-unique- (pull request #7)"
7db95cc Make build fail on compilation errors
860129a TunBuilderCapture: make (to|from)_json methods public
2486494 random: added helper class Rand2 containing a crypto and non-crypto RNG
04175c2 appversion.hpp: Stringize VERSION -> MY_VERSION
81cb887 build script: added DPROF=1 flag
a3dd47f timestr.hpp: moved milliseconds_since_epoch() to time/epoch.hpp
59b9492 sslchoose.hpp: added SSL_LIB_NAME
8fcb797 ProtoContext::KeyContext::raw_recv() : fix state transition
e49e993 ProtoContext: comment edit
1d941aa VPNServerNetblock::Netblock refactor
7190495 Server-side renamings to break up long class names using namespaces.
3f74ec1 Listen::List: minor changes
79c789b RandomAPI: comment edit
5b5af36 Added SSLConst::SERVER_TO_SERVER flag
fe00df4 OpenSSLContext::Config::set_rng: call assert_crypto()
3ae0076 In sslchoose.hpp, move OPENVPN_LOG_SSL macro to new file ssllog.hpp
1502cf6 URL::Parse: made is_valid_uri_char() standalone and moved to validate_uri.hpp
2dcb189 Added HTTP::Status::SwitchingProtocols constant
2f57024 HTTP::HeaderList: added get_value_trim_lower() method
bee94d2 HTTP::HeaderList: get_value() and get_value_trim() should return std::string instead of const std::string
5debab1 Frame::Context: #define OPENVPN_NO_IO to allow building without i/o layer
faf8f8f StaticKey: added parse_from_base64() method
d11f250 HashString: added final_base64() method
c373bf8 CompressContext: use C++11 member initialization and remove explicit attribute on constructor
bd75cd7 RCPtr: added operator==() and operator!=() methods
7be33c5 PThreadBarrier: fixed incorrect comment
6f5f77b Link: use move semantics
17a5d89 inotify.hpp: no longer used
8ce39fc added render_hex() and render_hex_sep() methods that accept void* data
ddc8e8a Function: use std::forward
76ee587 write_binary_atomic(): added tmpdir (temporary directory) parameter
f366d55 base64: encode() now accepts void* data
462fe90 BufferType: added read(), write(), and prepend() variants that accept void* data
9ad1be4 IP::RouteType: added host_bits() method
3ebc8c7 IPv[46]::Addr::to_sockaddr() now accepts optional port number
ce0977b Support Cityhash.
fdbb0b9 IP::Addr: added validate_prefix_len()
25146d8 IP::Addr::from_ipv[4|6](): use move semantics
a264f99 Merge pull request #20 from OpenVPN/fix_travis_ci_coverity
966e212 travis: don't mess up the SSL libs for wget/curl
2b8f09d Merge pull request #19 from OpenVPN/antonio/travis-ci-to-coverity
127cbb0 travis.yml: send build to Coverity SCAN when building master
2bca49b Merge pull request #15 from OpenVPN/antonio/travis-ci
a5ce566 add basic support for Travis CI
f9b14e9 macOS: add basic logging support
2b9188d Remotelist: pass meaningful port value to resolve::async_resolve()
4ebdbd0 Merged in OVPN3-38-improve-jenkins-pipeline-script (pull request #8)
832cf7f Report build status to Bitbucket
62423c9 Merged in OVPN3-21-prepend-log-record-with-unique- (pull request #7)
cce2455 Prepend log string with unique reference.
f26b08b Merged in OVPN3-25-pipeline-build (pull request #4)
dc5ff1f Add OpenSSL version building.
c77e1d6 Add pipeline script for multiplatform build.
4fab9b0 Merged in OVPN3-18-vs-project (pull request #2)
8eb0d6c Add Visual Studio project info to README
67c4989 Visual Studio 2015 solution and project files
52bfcd3 Merged in OVPN3-17 (pull request #1)
5f648ce Document Windows build process
3213c48 Support for local build settings
b3ec01b Support for gpl version of mbedtls
903abc8 Support for zipballs
4029579 AsioPolySock: support bind to local address.
1e85566 Use openvpn::strerror_str() instead of std::strerror().
3ba37fc OpenVPN 3 client: added OPENVPN_OVPNCLI_ASYNC_SETUP flag.

git-subtree-dir: OpenVPN Adapter/Vendors/openvpn
git-subtree-split: 3e002c83ce2e9f9f40ddcee750d3cfa664238abe
2018-01-08 11:44:56 +03:00