aboutsummaryrefslogtreecommitdiffstats
path: root/pingu_iface.c
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2012-03-14 10:08:51 +0100
committerNatanael Copa <ncopa@alpinelinux.org>2012-03-14 10:08:51 +0100
commit68e94a0780098e8b5e4772a270f91a60a370b8f6 (patch)
tree6bf904cfcf271ad9f8aa207d6cf5e171f8761d20 /pingu_iface.c
parent2f5cbff07d2872f78c92efe854385d083c4dfbca (diff)
downloadpingu-68e94a0780098e8b5e4772a270f91a60a370b8f6.tar.bz2
pingu-68e94a0780098e8b5e4772a270f91a60a370b8f6.tar.xz
pingu_adm: new admin command for dumping active pings
Diffstat (limited to 'pingu_iface.c')
-rw-r--r--pingu_iface.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/pingu_iface.c b/pingu_iface.c
index e4326d5..fa50de6 100644
--- a/pingu_iface.c
+++ b/pingu_iface.c
@@ -213,8 +213,8 @@ void pingu_iface_adjust_hosts_online(struct pingu_iface *iface, int adjustment)
statusstr = "OFFLINE";
route_action = RTM_DELROUTE;
action = iface->gw_down_action;
- }
-
+ }
+
log_info("%s: went %s", iface->label ? iface->label : iface->name,
statusstr);
pingu_iface_update_routes(iface, route_action);
@@ -255,7 +255,18 @@ void pingu_iface_dump_status(int fd, char *filter)
pingu_iface_gw_is_online(iface));
write(fd, buf, strlen(buf));
}
- write(fd, "\n", 1);
+ write(fd, "\n", 1);
+}
+
+void pingu_iface_dump_pings(int fd, char *filter)
+{
+ struct pingu_iface *iface;
+ list_for_each_entry(iface, &iface_list, iface_list_entry) {
+ if (filter != NULL && strcmp(filter, iface->name) != 0)
+ continue;
+ pingu_ping_dump(fd, &iface->ping_list, iface->name);
+ }
+ write(fd, "\n", 1);
}
int pingu_iface_init(struct ev_loop *loop)