Commit Graph

247 Commits

Author SHA1 Message Date
Dennis Schwerdel 68af49bf29 Removed a layer of indirection from inner loop 2017-05-04 08:22:24 +02:00
Dennis Schwerdel 87097cc59f Fixed two problems in routing table (re #18) 2017-05-04 07:52:34 +02:00
Dennis Schwerdel 2d11454316 Making clippy happy 2017-05-04 07:52:34 +02:00
Dennis Schwerdel 21837abf68 Updated dependencies and libsodium 2017-05-04 07:52:33 +02:00
Dennis Schwerdel b248e50672 Limit peer lists to 20 peers 2017-01-11 14:31:28 +01:00
Dennis Schwerdel dd804fe6df Even more tests 2016-11-28 12:14:56 +01:00
Dennis Schwerdel e323ac38b8 Updated dependencies, more test coverage 2016-11-28 11:28:46 +01:00
Dennis Schwerdel 6d9fdddb7c Some more documentation and fixed tests 2016-11-25 07:15:19 +01:00
Dennis Schwerdel 88f5272023 Daemonizing and proper systemd support 2016-11-24 07:10:59 +01:00
Dennis Schwerdel 4497ddaf13 Using external siphasher to avoid warning 2016-11-23 11:37:09 +01:00
Dennis Schwerdel 83d8bcfc1a Setting reserved fields to 0 2016-11-23 11:27:58 +01:00
Dennis Schwerdel 3e2fec3216 Better error messages 2016-11-23 11:27:29 +01:00
Dennis Schwerdel 6e828b7ae8 Not overriding recently learned addresses in switch mode 2016-08-30 08:52:22 +02:00
Dennis Schwerdel c41a49c0b7 Caching resolved addresses 2016-08-29 15:20:32 +02:00
Dennis Schwerdel 6502da3816 Some more lints 2016-08-29 13:12:50 +02:00
Dennis Schwerdel 7a4efa9257 Prefer IPv4 over IPv6 when possible 2016-08-12 08:39:04 +02:00
Dennis Schwerdel 00296a660d Added timestamp to outputs 2016-08-12 08:36:09 +02:00
Dennis Schwerdel 5e7d3b5e08 Not broadcasting to additional addresses 2016-08-12 08:35:09 +02:00
Dennis Schwerdel 1da38f5205 Extending peer timeout on peer message 2016-08-12 08:31:21 +02:00
Dennis Schwerdel 937c7b9f3b Logging timed out peers as INFO 2016-08-12 08:30:13 +02:00
Dennis Schwerdel 0243859d5a Support for port forwarding (closes #6) 2016-08-10 11:34:13 +02:00
Dennis Schwerdel ed9f464dbf Removed defaults from docopts as it does not work with options 2016-08-10 10:25:19 +02:00
Dennis Schwerdel de6709853f Removed duplicate error prints 2016-08-08 22:24:04 +02:00
Dennis Schwerdel b8fcd382d8 Fixed problem with interrupted poll after suspend to ram 2016-08-08 20:41:29 +02:00
Dennis Schwerdel 023ef0e1d7 Test cases for config file 2016-08-08 16:56:58 +02:00
Dennis Schwerdel 06fc814b4b Added support for YAML config file (re #8) 2016-08-08 16:30:49 +02:00
Dennis Schwerdel 08048709b6 Configurable magic header instead of network id (re #5) 2016-08-08 09:34:13 +02:00
Oscar Rainford e7899e05b2
Updated usage.txt, fixes issue with multiple subnets. 2016-08-08 11:54:55 +10:00
Dennis Schwerdel d5a6002507 Some speed improvments to routing table 2016-08-05 08:42:41 +02:00
Dennis Schwerdel d37c61fd22 Code improvements 2016-07-06 22:35:42 +02:00
Dennis Schwerdel 6d38130146 Covering missing error case 2016-07-06 21:29:42 +02:00
Dennis Schwerdel 8a239f8e1a Removed broken ord implementations 2016-07-06 21:29:28 +02:00
Dennis Schwerdel 0bcdfbe21e More tests, bugfixes and code cleanup 2016-07-06 21:14:09 +02:00
Dennis Schwerdel 3488d2d2a3 Some code cleanup 2016-07-06 18:48:58 +02:00
Dennis Schwerdel 4e047b6065 Fixed compile error 2016-07-03 11:59:14 +02:00
Dennis Schwerdel 885b288025 Fixed problem with reading from device 2016-07-03 09:47:58 +02:00
Dennis Schwerdel 91722f4270 Added support for strange BSD tun header 2016-07-02 14:05:24 +02:00
Dennis Schwerdel d52d7e3aaf Added pluggable polling system 2016-06-30 10:06:34 +02:00
Dennis Schwerdel 1cf1d0687b Removing learnt addresses of lost peers 2016-06-29 08:47:36 +02:00
Dennis Schwerdel a698ad95a3 Code cleanup 2016-06-29 08:43:39 +02:00
Dennis Schwerdel 72b8eccfa9 Some documentation and code cleanup 2016-06-27 15:43:30 +02:00
Dennis Schwerdel ab7c033383 Reconnecting to lost peers when receiving from them or sending to them 2016-06-26 19:21:26 +02:00
Dennis Schwerdel d7b930982d Sending peer list more often to prevent timeouts 2016-06-26 19:21:04 +02:00
Dennis Schwerdel dea7c8c128 Removed address remove code for prefix table 2016-06-26 19:19:19 +02:00
Dennis Schwerdel 97af7bcef4 Documentation and code cleanup 2016-06-26 19:18:38 +02:00
Dennis Schwerdel e31e5c362d Building for ARMv6, silenced unknown lints 2016-06-21 11:37:26 +02:00
Dennis Schwerdel bebfc07ecd Cross-compiling for ARMv7, updated dependencies, silenced clippy warnings 2016-06-21 08:57:20 +02:00
Dennis Schwerdel f933db2dd9 Making clippy happy 2016-06-11 16:08:57 +02:00
Dennis Schwerdel 7586ce02f0 Updated dependencies, fixed benchmarks 2016-05-31 16:02:29 +02:00
Dennis Schwerdel 1c6f72539e Some fixes 2016-05-25 13:30:18 +02:00
Dennis Schwerdel 9fcb89bba8 Updated dependencies, removed unused imports 2016-05-25 09:56:41 +02:00
Dennis Schwerdel 2119bbcae5 Exponential backoff for reconnect timeouts 2016-05-24 10:32:32 +02:00
Dennis Schwerdel 5099003479 Repeatedly resolving connect addresses to allow DynDNS 2016-05-11 10:54:00 +02:00
Dennis Schwerdel 8d3ab9cc4a Handling multiple addresses per peer 2016-05-02 09:05:34 +02:00
Dennis Schwerdel 2f2f7b725f Listening on ipv4 and ipv6 2016-05-02 08:35:11 +02:00
Dennis Schwerdel cd2259c09d Prepared for cross-compiling 2016-04-12 09:20:47 +02:00
Dennis Schwerdel 15cd399827 Using slice operations instead of loops 2016-03-29 14:26:59 +02:00
Dennis Schwerdel fe7b0f0007 Removing learned addresses of lost peers 2016-03-29 13:54:28 +02:00
Dennis Schwerdel c11d5b4d6e Using FNV hash 2016-03-29 10:45:54 +02:00
Dennis Schwerdel 60de5d069f Extensive tests and benchmarks 2016-02-09 09:10:56 +01:00
Dennis Schwerdel c07d772b90 Passing listen address as &str 2016-02-09 09:10:40 +01:00
Dennis Schwerdel f860d487e9 Initializing crypto for benchmarks 2016-02-09 09:10:28 +01:00
Dennis Schwerdel 23cbbda2b0 Only calling crypto_init once 2016-02-09 09:10:03 +01:00
Dennis Schwerdel 102fedd7ea Added license and copyright information 2016-02-05 16:58:32 +01:00
Dennis Schwerdel 3cf6a28eb7 Fixed peer exchange for more than 65000 peers 2016-02-04 22:40:26 +01:00
Dennis Schwerdel 1db4fea091 More tests and one fix 2016-02-02 23:58:47 +01:00
Dennis Schwerdel c19e1fbf75 Using display format for addresses 2016-02-02 22:03:56 +01:00
Dennis Schwerdel 87cceca65f Fixed problem with nodes broadcasting to themselves 2016-02-02 11:01:23 +01:00
Dennis Schwerdel 6c35047a97 Code cleanup 2016-02-02 11:00:03 +01:00
Dennis Schwerdel 4b68923f75 Using copy trait more often 2016-01-19 21:52:44 +01:00
Dennis Schwerdel 112e531127 Fixed parsing and printed length 2015-12-22 22:47:41 +01:00
Dennis Schwerdel 8930e21663 No longer encrypting multiple times 2015-12-22 22:45:52 +01:00
Dennis Schwerdel cb00c2f30a Supporting hostnames as peers 2015-12-22 22:44:25 +01:00
Dennis Schwerdel fa4547a309 Removing NULL-bytes from interface name 2015-12-22 22:40:26 +01:00
Dennis Schwerdel 5d3f6f3494 Crypto benches 2015-12-22 14:43:02 +01:00
Dennis Schwerdel b362ac676c Fixed benches 2015-12-13 22:10:47 +01:00
Dennis Schwerdel 8a5b2cc5ee Removed last payload memcopy 2015-12-13 22:03:06 +01:00
Dennis Schwerdel 80119c4c5a Small fixes 2015-12-04 11:25:14 +01:00
Dennis Schwerdel 28f7c794e1 No longer connecting to self, flush on write 2015-12-03 09:38:14 +01:00
Dennis Schwerdel 6be85ea1cb Ready to release 0.3 2015-12-02 14:16:13 +01:00
Dennis Schwerdel d8276fad58 Using ietf chacha20 version and fixed crypto tests 2015-12-01 10:13:11 +01:00
Dennis Schwerdel c2f627bc07 Checking AES support 2015-11-30 23:04:24 +01:00
Dennis Schwerdel 7dfcd92ab0 Improved crypto 2015-11-30 22:11:37 +01:00
Dennis Schwerdel ec6d1b544f Include libsodium in builds 2015-11-30 17:27:50 +01:00
Dennis Schwerdel 03793052a3 Testing error cases too, updated performance 2015-11-29 23:23:39 +01:00
Dennis Schwerdel 1d82c2b017 Forgot to call sodium_init (re #1) 2015-11-29 21:53:08 +01:00
Dennis Schwerdel 5c868d2713 More tests, less unsafe blocks 2015-11-27 15:09:59 +01:00
Dennis Schwerdel f09557d43b More tests 2015-11-27 00:40:11 +01:00
Dennis Schwerdel 46011a03c6 Lots of changes and release 0.2 2015-11-26 22:16:51 +01:00
Dennis Schwerdel 748f9363a6 Fixed problem with init messages 2015-11-26 10:52:58 +01:00
Dennis Schwerdel f933c541f8 Removed lots of unsafe blocks 2015-11-26 10:45:25 +01:00
Dennis Schwerdel ecb57b24de More improvements 2015-11-25 21:55:30 +01:00
Dennis Schwerdel 946e384660 Some benchmarks and low-hanging speed improvements 2015-11-25 21:05:11 +01:00
Dennis Schwerdel f6b6faf50a Performance measurements 2015-11-25 19:23:25 +01:00
Dennis Schwerdel b4cc4d402a Sending close message at the end 2015-11-25 14:31:05 +01:00
Dennis Schwerdel 8e34acb5de Implemented IPv6 2015-11-25 13:51:57 +01:00
Dennis Schwerdel 12b5b17c3b Pretty error messages instead of panics 2015-11-25 12:29:12 +01:00
Dennis Schwerdel 83fb941599 Complete rewrite of crypto part 2015-11-24 23:47:38 +01:00
Dennis Schwerdel be3a85c3b9 Constants 2015-11-24 21:15:00 +01:00
Dennis Schwerdel 553526299c Changed encryption a little 2015-11-24 20:55:14 +01:00
Dennis Schwerdel 72b5d9c3fd Removed unused trait 2015-11-24 12:12:15 +01:00
Dennis Schwerdel 5d006c389c --version 2015-11-24 11:19:27 +01:00
Dennis Schwerdel 04011a5766 more tests 2015-11-23 21:43:00 +01:00
Dennis Schwerdel d4a85fc41b Param field names 2015-11-23 20:53:58 +01:00
Dennis Schwerdel 29f6e4d6b1 Ifup & ifdown scripts 2015-11-23 19:06:25 +01:00
Dennis Schwerdel ff38beb6e3 Fixed crypto 2015-11-23 17:10:42 +01:00
Dennis Schwerdel 7ce4c21613 Safety check 2015-11-23 15:58:55 +01:00
Dennis Schwerdel 46728ce362 Crypto feature 2015-11-23 15:40:04 +01:00
Dennis Schwerdel 90ef94224a Changes, fixes, renaming, specs, ... 2015-11-23 11:55:37 +01:00
Dennis Schwerdel c5d072fa13 L2 routing 2015-11-23 01:48:50 +01:00
Dennis Schwerdel 30fab51be6 More generic 2015-11-23 01:40:47 +01:00
Dennis Schwerdel a559a10155 types in extra module 2015-11-23 01:04:30 +01:00
Dennis Schwerdel fe036ded5f Fixed test cases 2015-11-23 01:00:18 +01:00
Dennis Schwerdel 28a79f2d47 Rework 2015-11-23 00:49:58 +01:00
Dennis Schwerdel 83f53c16d7 Behavior 2015-11-22 23:34:54 +01:00
Dennis Schwerdel 64342d1288 Fixed tun mode 2015-11-22 22:45:04 +01:00
Dennis Schwerdel d9dedcdd0d Lots of changes 2015-11-22 22:00:34 +01:00
Dennis Schwerdel f559e9bf09 Tun feature 2015-11-22 20:02:02 +01:00
Dennis Schwerdel 8716c70e6d Routing table from file 2015-11-22 19:47:28 +01:00
Dennis Schwerdel 1666845835 TunCloud 2015-11-22 19:00:56 +01:00
Dennis Schwerdel 87571feef6 Simplification 2015-11-22 18:05:15 +01:00
Dennis Schwerdel 7cbe7c8f71 More code 2015-11-22 17:28:04 +01:00
Dennis Schwerdel 0a04c9f1b9 VLan as Option 2015-11-22 16:50:57 +01:00
Dennis Schwerdel e92f237d5e Lots of changes 2015-11-22 16:48:01 +01:00
Dennis Schwerdel b6bde39c3b Traits and major rework 2015-11-21 18:09:13 +01:00
Dennis Schwerdel 2fe004c074 TapDev -> TunTapDev 2015-11-21 17:06:57 +01:00
Dennis Schwerdel 8c414f9c23 Some routing code 2015-11-21 16:50:50 +01:00
Dennis Schwerdel 93fc3f85d8 Networkid as hash 2015-11-20 18:40:23 +01:00
Dennis Schwerdel 69e3db02d8 Fixed tests 2015-11-20 18:31:57 +01:00
Dennis Schwerdel 884d84be5b Flags instead of options 2015-11-20 18:30:50 +01:00
Dennis Schwerdel 9ea2dcb862 Flexible options 2015-11-20 18:09:51 +01:00
Dennis Schwerdel 80859f4671 Usage, help 2015-11-20 14:05:35 +01:00
Dennis Schwerdel 594841da9b Spec update 2015-11-20 13:58:11 +01:00
Dennis Schwerdel d3bcfbec5e Still sending to all peers to avoid timeouts 2015-11-20 13:39:57 +01:00
Dennis Schwerdel 58f4d58d66 Partial peer list exchange for scaling 2015-11-20 13:34:54 +01:00
Dennis Schwerdel 9dc796d52b Implemented reconnect 2015-11-20 12:09:07 +01:00
Dennis Schwerdel a448a26e7f Updates tests and spec 2015-11-20 11:33:32 +01:00
Dennis Schwerdel c038209026 Remove cache, does not bring that much 2015-11-20 10:59:01 +01:00
Dennis Schwerdel cb3cc85e38 Performance improvements 2015-11-20 09:49:41 +01:00
Dennis Schwerdel e76e93544b Epoll 2015-11-20 09:11:54 +01:00
Dennis Schwerdel 90bf0f1c40 Specs 2015-11-19 22:45:20 +01:00
Dennis Schwerdel b66e86bddf small changes 2015-11-19 20:51:53 +01:00
Dennis Schwerdel 8f747e3448 restructure 2015-11-19 19:29:42 +01:00
Dennis Schwerdel b4fdf89b32 --quiet 2015-11-19 17:23:36 +01:00
Dennis Schwerdel e4c773f10a Optimizations 2015-11-19 17:20:34 +01:00
Dennis Schwerdel eaed378bb7 Threaded 2015-11-19 17:11:59 +01:00
Dennis Schwerdel 84813fa011 Initial working version 2015-11-19 16:34:20 +01:00