2693cfc6e5
Remove PACKET_TYPE_LEN define
2014-05-22 03:14:16 +02:00
1fe3425c97
Add Doxygen support
2014-05-22 02:48:59 +02:00
2a64611f72
Clean up fastd.c includes
2014-05-22 02:22:01 +02:00
09f525417c
Move fastd_handle_receive() to receive.c
2014-05-22 02:16:44 +02:00
47d84679d6
Fix waitpid race condition
...
Doing a waitpid for all processes in the SIGCHLD handler could sometimes steal
a signal from a fastd_shell_command_exec_sync call. To fix this, don't reap the
children in the SIGCHLD handler anymore, but create a reaper thread for each
asynchronous shell command.
2014-05-22 02:02:39 +02:00
956e414d7b
Use unescaped instance name in systemd unit
2014-05-20 14:23:11 +02:00
56c72080ac
Make systemd support optional again
2014-05-05 04:23:34 +02:00
1c71bf873a
systemd: use syslog/journald by default
2014-05-01 16:30:40 +02:00
8ccba8ebfa
Remove support for log files
...
syslog/journald do a much better job at organizing logs, with the additional
advantage of proper log rotation.
If someone really wants to have a log file for fastd, they can just redirect
stderr.
2014-05-01 16:26:39 +02:00
8e589f3a3a
Fix CMake errors on some config combinations
2014-04-30 03:40:15 +02:00
0d0a857c69
Use SOCK_NONBLOCK where available
2014-04-30 03:32:36 +02:00
4f082c7df3
Remove now unneeded FD_CLOEXEC flag config
2014-04-30 02:56:02 +02:00
36f9d70182
shell: close all fds > 2 after forking
...
socket/fcntl to set FD_CLOEXEC isn't thread-safe with async verify handlers,
and SOCK_CLOEXEC isn't portable.
2014-04-30 02:45:01 +02:00
9a86ce6ea9
Fold fastd_open_pipe into fastd_async_init, simpify fastd_setfl and fastd_setfd and move to fastd.h
2014-04-29 16:17:58 +02:00
639ebc2ff9
More daemonize cleanup
2014-04-28 21:00:18 +02:00
dd11507cdf
Fix socketpair error message
2014-04-28 20:48:57 +02:00
8dda55956d
Simpilify daemonize
2014-04-28 20:48:18 +02:00
5871d08a3a
Make on-verify support optional
2014-04-26 23:22:24 +02:00
36690c7203
Implement async verify
2014-04-26 22:46:05 +02:00
64ce1c0f51
pthread_create returns an error instead of setting errno
2014-04-26 22:20:27 +02:00
4020ee614c
Revise shell command API
2014-04-26 20:37:47 +02:00
1ea5ef8944
epoll: update time *after* waiting...
2014-04-25 21:50:29 +02:00
6785e06f2b
handshake: simplify fastd_handshake_new_reply
...
This will hopefully lead to an async verify implementation...
2014-04-25 03:39:56 +02:00
8c193693d7
Move around some code
2014-04-25 03:23:13 +02:00
1723e18b1d
Reduce minimum vector allocation
2014-04-25 02:28:32 +02:00
7fbaedb117
Replace a few more O(n) peer operations with O(log n) using binary search
2014-04-25 02:16:48 +02:00
5adfca9b65
Remove ref-counting on remotes
...
Now that peers have a peer id we can use that to specify a peer in a resolve
return. As the remote list of a peer doesn't change without the peer id
changing, instead of taking a remote ref we can just use the peer id and remote
index.
2014-04-25 01:51:36 +02:00
482ddc46a6
fastd_peer_claim_address: add parameter to allow claiming addresses of established peers
2014-04-25 00:56:07 +02:00
1bb1eb5a33
fastd_peer_claim_address: allow claiming addresses from other peers when they aren't configured statically
2014-04-25 00:49:44 +02:00
53b74ddf2c
vector: add VECTOR_BSEARCH macro and use where appropriate
2014-04-25 00:13:44 +02:00
4ea57586f5
Add a sequential number to identify peers
2014-04-24 22:25:41 +02:00
e4e4f007e8
config: remove support for deprecated float syntax
2014-04-24 04:12:16 +02:00
ea609fe8c2
Convert few more counters to size_t, just for the sake of consistency...
2014-04-24 03:36:36 +02:00
e8296fbc9f
ec25519-fhmqvc: use PUBLICKEYBYTES and SECRETKEYBYTES defines more
2014-04-24 03:33:09 +02:00
4872dd03e7
Always use size_t for counters
2014-04-24 03:17:46 +02:00
baf9b2fd60
Make async handle buffer aligned
2014-04-24 01:04:03 +02:00
d3eb3ac888
Use socketpair instead of pipe for internal message pipes
...
While pipe2 recently got O_DIRECT on Linux, we'll just use SOCK_DGRAM to stay
portable, and get proper handling of full queues.
2014-04-23 17:36:59 +02:00
f37fb374a9
Fix peer group tree traversal when reading peer dirs
...
This broke when conf was made global.
2014-04-21 20:14:06 +02:00
505f97771a
Remove vector of new temporary peers
...
The new poll code has made this second peer list obsolete.
2014-04-21 20:02:43 +02:00
175685ed5f
poll: add pollfd count assert
2014-04-21 19:51:28 +02:00
bda274971e
Define IP_FREEBIND if it is not provided
2014-04-20 19:37:07 +02:00
7adeb6e881
Make ctx global
2014-04-20 05:29:11 +02:00
b9c8603931
Make conf global
2014-04-20 04:36:34 +02:00
ab4ca17ba3
Linux: use epoll to handle great numbers of peers with less overhead
2014-04-20 02:48:25 +02:00
8c705b9cd4
Minimize poll interface to simplify implementation of alternative implementations
2014-04-20 02:16:44 +02:00
0bf9268453
Keep peers in a hash table to allow fast address lookups
2014-04-19 23:54:10 +02:00
194e1c878a
Keep a vector of pollfds instead of regenerating it all the time
2014-04-19 22:03:07 +02:00
6798a76ffa
Store peers as vectors of pointers instead of linked lists
2014-04-19 20:00:36 +02:00
2e14d72936
Make eth_addrs a vector
2014-04-19 19:07:18 +02:00
e59ff6e444
Add vector macros
2014-04-19 19:06:48 +02:00