summaryrefslogtreecommitdiffstats
path: root/src/task.c
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2015-11-17 01:27:47 +0100
committerMatthias Schiffer <mschiffer@universe-factory.net>2015-11-17 01:27:47 +0100
commit5082b5a4d2ec52b90e6d7ed178e462a6f0ff6f3e (patch)
treeb3a4e5197bde749bcb7f3dd5354743854325847e /src/task.c
parentcca293a6d474b2bd02a5fbfb1f2fae6179c395d6 (diff)
downloadfastd-5082b5a4d2ec52b90e6d7ed178e462a6f0ff6f3e.tar
fastd-5082b5a4d2ec52b90e6d7ed178e462a6f0ff6f3e.zip
Use task queue for peer resets and keepalives
This makes it unnecessary to iterate over all peers for maintenance, and desynchronizes different peers' keepalives.
Diffstat (limited to 'src/task.c')
-rw-r--r--src/task.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/task.c b/src/task.c
index 2fe79c8..e1dc77d 100644
--- a/src/task.c
+++ b/src/task.c
@@ -36,7 +36,6 @@
/** Performs periodic maintenance tasks */
static inline void maintenance(void) {
fastd_socket_handle_binds();
- fastd_peer_maintenance();
fastd_peer_eth_addr_cleanup();
fastd_task_reschedule_relative(&ctx.next_maintenance, MAINTENANCE_INTERVAL);
@@ -56,6 +55,10 @@ static void handle_task(void) {
fastd_peer_handle_handshake_task(task);
break;
+ case TASK_TYPE_PEER:
+ fastd_peer_handle_task(task);
+ break;
+
default:
exit_bug("unknown task type");
}