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_host.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'pingu_host.h') diff --git a/pingu_host.h b/pingu_host.h index f19c461..71e83a7 100644 --- a/pingu_host.h +++ b/pingu_host.h @@ -8,14 +8,10 @@ struct pingu_host { struct list_head host_list_entry; char *host; - char *source_ip; char *label; - char *interface; - char *gateway; - char *up_action; - char *down_action; + const char *up_action; + const char *down_action; int status; - int iface_route_table; int max_retries; int required_replies; ev_tstamp timeout; @@ -26,8 +22,13 @@ struct pingu_host { struct pingu_iface *iface; }; +struct pingu_host *pingu_host_new(char *hoststr, float burst_interval, + int max_retries, int required_replies, + float timeout, + const char *up_action, + const char *down_action); int pingu_host_set_status(struct pingu_host *host, int status); -int pingu_host_init(struct ev_loop *loop, const char *config_file); +int pingu_host_init(struct ev_loop *loop); int pingu_host_verify_status(struct ev_loop *loop, struct pingu_host *host); #endif -- cgit v1.2.3