5f898aa52f
Dynamically grow hashtable when there are more than twice as many entries as buckets
...
This allows us to start with a much smaller hashtable and scale much higher.
2014-09-05 00:22:21 +02:00
95c81c5d77
Support dynamic binds with extra options (interface binds, specific addresses...)
2014-09-04 23:54:24 +02:00
4bb2d6fb99
Nicer handshake error messages instead of "unacceptable value"
2014-09-04 23:02:22 +02:00
c34b202fa9
Add user manual as Sphinx doc
2014-09-04 21:09:12 +02:00
64257e6eae
Fix UHASH build on MacOS X
2014-09-03 18:00:10 +02:00
639ea07d77
Fix clock_gettime() on MacOS X
2014-09-03 18:00:10 +02:00
ed0aec25c5
Fix UHASH build on *BSD
2014-09-03 17:41:11 +02:00
edbfeca6ce
Remove old state dump feature
...
It will be replaced by a nicer version.
2014-09-01 22:27:51 +02:00
715f2e467f
Add missing docs to secure_memequal and block_equal
2014-09-01 22:05:50 +02:00
181715c5bc
Add alloc helpers for aligned allocations
2014-09-01 22:03:43 +02:00
1a30018711
Add missing stdbool.h include to dlist.h
2014-09-01 21:56:31 +02:00
415020dcc3
Ensure peer add/delete messages are printed for the same peers
2014-09-01 21:52:47 +02:00
9225a4550a
Replace memcmp with a constant-time version in some places
2014-08-31 16:21:24 +02:00
46a82c570c
Add generic-umac and composed-umac methods based on UMAC
2014-08-28 18:46:02 +02:00
a681219a92
Add UHASH implementation
2014-08-28 16:34:10 +02:00
398f78c1ff
Revert "Experimental HMAC-SHA1 implementation"
...
We don't really want to support it, and it's slower than GHASH...
This reverts commit 9bf4982637
.
2014-08-28 15:42:56 +02:00
b4a53fddb8
Move some utility funtions to a new header
2014-08-25 17:23:05 +02:00
9bf4982637
Experimental HMAC-SHA1 implementation
...
This adds experimental support for <cipher>+hmac-sha1 methods. It currently
depends on OpenSSL and is not yet ready for production use.
2014-08-25 02:19:32 +02:00
f2d84afd9d
MAC: rename hash() to digest() and change length unit from blocks to bytes
2014-08-25 00:09:19 +02:00
9855a34f48
Coding style: always add a space between a pointer's type and the *
2014-08-24 21:06:09 +02:00
1ae3aae351
Use simple int64_t timestamps in ms instead of timespecs
2014-08-24 16:07:50 +02:00
4c0623a080
Exit if invalid peers are configured on the command line
2014-08-24 03:31:12 +02:00
d42e9d9b1a
Don't output "adding peer" messages for static peers
...
Otherwise log messages are emitted to early.
2014-08-24 03:19:15 +02:00
25c9d93516
Improve error messages for invalid static peers
2014-08-24 03:17:50 +02:00
e7b0801809
Fix function name in comment
2014-08-24 02:55:09 +02:00
6a178be29f
Instead of replacing changed peers, delete and re-add them
...
This ensures they get a new ID, so asychronous replies for the old config aren't
associated with the new one.
2014-08-24 01:46:30 +02:00
b54d87d26f
Fix waitpid EINTR error on SIGCHLD
...
waitpid may fail with EINTR for SIGCHLD even when all signals are blocked.
2014-08-24 01:33:02 +02:00
1d38bad857
Fix connections to peers with static addresses
2014-08-24 01:14:02 +02:00
a04bcf247f
Merge peer config into peer structure
...
With this refactoring, the structure fastd_peer_config_t is merged into
fastd_peer_t, and fastd_remote_config_t into fastd_remote_t. This also means we
now create peers directly when reading their configurations, which significantly
simplifies the whole reload process, and prepares for some future optimizations
like a key hash table.
Note: This commit is too big, but I couldn't come up with a nice way to split it
into smaller pieces...
2014-08-24 01:00:45 +02:00
ad4999488e
Remove VECTOR_ALLOC
...
It is done automatically now if the VECTOR is zeroed before.
2014-08-22 17:47:51 +02:00
35a18b1dea
Create peer structures for disabled peers as well
...
We have a 1:1 association between peers and peer configs now.
2014-08-19 00:21:38 +02:00
21ade840c9
Unify enabled and dynamic flags into a config_state flag
2014-08-18 22:52:25 +02:00
c9c7cbb67c
Remove a few now unneeded peer->config NULL checks
2014-08-18 22:44:57 +02:00
d39193123e
Fix a few comment typos
2014-08-18 22:33:01 +02:00
50d9aa2334
Dynamically create peer configs for dynamic peers
...
This avoids duplicating the protocol_config field.
2014-08-18 22:30:30 +02:00
cb3c88e020
Rename WITH_VERIFY CMake option to WITH_DYNAMIC_PEERS
2014-08-18 22:08:30 +02:00
5d111c83ff
peer: add a flag `dynamic' instead of checking the config field for NULL
2014-08-18 22:01:38 +02:00
2352e1a79e
Rename "temporary peers" to "dynamic peers"
2014-08-18 21:34:53 +02:00
c251df4a17
peer: remove fastd_remote_is_dynamic()
2014-08-18 21:33:06 +02:00
02c72f46bd
peer: remove dead code fastd_remote_matches_dynamic()
2014-08-18 21:27:59 +02:00
7879164915
Move fastd_config_t.peers to fastd_context_t.peer_configs
2014-08-09 06:16:14 +02:00
e0f99a4199
log: fix port of IPv6 addresses with hidden IP addresses
2014-08-09 06:14:53 +02:00
c800a400b0
Add MacOS X semaphore implementation
2014-08-01 21:55:13 -07:00
4f25bdd259
Encapsulate semaphore handling
2014-08-02 06:45:39 +02:00
96a291d11f
Add support for Mac OS X
2014-08-01 21:08:18 -07:00
e63fe3b8d0
Don't use exponential notation for integers
2014-08-02 03:38:31 +02:00
546ac79363
Introduce and use alloc helpers
...
These new helpers will terminate fastd on allocation failures and add some
additional convenience (allow strdup with NULL; typesafe new(type) macros).
2014-08-02 00:53:47 +02:00
b22364f4af
Fix CMake warning about doc target, only use `doxygen' target
...
Also, to avoid conflicts with the doc directory, the default output dir has been
changed to doxygen.
2014-08-01 22:32:07 +02:00
5f385b0ea0
Use srandom/random instead of rand_r
...
There's no need to keep our own seed.
2014-08-01 22:12:56 +02:00
ebcf28b9ab
config: fix basic config checks in TUN mode
2014-07-10 18:20:17 +02:00