From dcd2b0e077ff2995660f15ef28580e8a002c5c5f Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Fri, 5 Aug 2011 09:37:27 +0200 Subject: pingu: implement new config format New format allows users to define interfaces and ping hosts separately. This means we can run pingu in routing-only mode to set up and manage route tables for multi-isp. We allow the user config a preferred alternate route table for each interface. If not configured, pingu will pick one. Example interface definition looks like: interface eth0 { route-table 10 } Example host definition looks like: host 192.168.0.1 { bind-interface eth0 } --- pingu.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'pingu.c') diff --git a/pingu.c b/pingu.c index 6da05c6..b124d4f 100644 --- a/pingu.c +++ b/pingu.c @@ -12,13 +12,11 @@ #include -#include "icmp.h" -#include "pingu.h" -#include "xlib.h" #include "log.h" -#include "list.h" +#include "pingu_conf.h" #include "pingu_host.h" +#include "pingu_iface.h" #include "pingu_netlink.h" #ifndef DEFAULT_CONFIG @@ -146,7 +144,16 @@ int main(int argc, char *argv[]) log_init(verbose); loop = ev_default_loop(0); - pingu_host_init(loop, config_file); + + if (pingu_conf_read(config_file) < 0) + return 1; + + if (pingu_iface_init(loop) < 0) + return 1; + + if (pingu_host_init(loop) < 0) + return 1; + kernel_init(loop); if (pingu_daemonize) { -- cgit v1.2.3