aboutsummaryrefslogtreecommitdiffstats
path: root/pingu_iface.c
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-10-12 15:30:26 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2011-10-12 15:30:26 +0200
commit934919ff6ad143eb585943799f6685a34bd403b0 (patch)
treec920d13567cb64fd5ae209ca4e5ee08d8513b0fd /pingu_iface.c
parentc2af879f64bac393df12e593b1bf16cd56517095 (diff)
downloadpingu-934919ff6ad143eb585943799f6685a34bd403b0.tar.bz2
pingu-934919ff6ad143eb585943799f6685a34bd403b0.tar.xz
pingu_adm: implement host-status and gateway-status
Diffstat (limited to 'pingu_iface.c')
-rw-r--r--pingu_iface.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/pingu_iface.c b/pingu_iface.c
index 820546d..f92bc5d 100644
--- a/pingu_iface.c
+++ b/pingu_iface.c
@@ -243,6 +243,21 @@ int pingu_iface_set_route_table(struct pingu_iface *iface, int table)
return table;
}
+void pingu_iface_dump_status(int fd, char *filter)
+{
+ struct pingu_iface *iface;
+ char buf[512];
+ list_for_each_entry(iface, &iface_list, iface_list_entry) {
+ if (filter != NULL && strcmp(filter, iface->label) != 0)
+ continue;
+ snprintf(buf, sizeof(buf), "%s: %i\n",
+ iface->label != NULL ? iface->label : iface->name,
+ pingu_iface_gw_is_online(iface));
+ write(fd, buf, strlen(buf));
+ }
+ write(fd, "\n", 1);
+}
+
int pingu_iface_init(struct ev_loop *loop)
{
struct pingu_iface *iface;