summaryrefslogtreecommitdiff
path: root/sysdeps/freebsd
diff options
context:
space:
mode:
authorBenoît Dejean <bdejean@src.gnome.org>2004-12-05 12:01:43 +0000
committerBenoît Dejean <bdejean@src.gnome.org>2004-12-05 12:01:43 +0000
commitfe5bb1c39c0f1dae70c9e3b18094d219e8333854 (patch)
treea908b6dfe1e3f70898ea2c43e810d7d6811596f4 /sysdeps/freebsd
parent4b310d26f71a49f12526d05cd9fc29c881e2d8f2 (diff)
downloadlibgtop-fe5bb1c39c0f1dae70c9e3b18094d219e8333854.tar.gz
Added glibtop_get_netlist. Patch from marcus@freebsd.org (Joe Marcus
* Makefile.am: * netlist.c: (glibtop_init_netlist_s), (glibtop_get_netlist_s): Added glibtop_get_netlist. Patch from marcus@freebsd.org (Joe Marcus Clarke).
Diffstat (limited to 'sysdeps/freebsd')
-rw-r--r--sysdeps/freebsd/ChangeLog6
-rw-r--r--sysdeps/freebsd/Makefile.am4
-rw-r--r--sysdeps/freebsd/netlist.c63
3 files changed, 71 insertions, 2 deletions
diff --git a/sysdeps/freebsd/ChangeLog b/sysdeps/freebsd/ChangeLog
index 27bc6e50..fb645932 100644
--- a/sysdeps/freebsd/ChangeLog
+++ b/sysdeps/freebsd/ChangeLog
@@ -1,3 +1,9 @@
+2004-12-05 Benoît Dejean <tazforever@dlfp.org>
+
+ * Makefile.am:
+ * netlist.c: (glibtop_init_netlist_s), (glibtop_get_netlist_s):
+ Added glibtop_get_netlist. Patch from marcus@freebsd.org (Joe Marcus Clarke).
+
2004-08-28 Benoît Dejean <tazforever@dlfp.org>
* mem.c: (glibtop_get_mem_p):
diff --git a/sysdeps/freebsd/Makefile.am b/sysdeps/freebsd/Makefile.am
index e00a4526..3a313b64 100644
--- a/sysdeps/freebsd/Makefile.am
+++ b/sysdeps/freebsd/Makefile.am
@@ -11,8 +11,8 @@ libgtop_sysdeps_suid_2_0_la_SOURCES = open.c close.c cpu.c mem.c swap.c \
uptime.c loadavg.c shm_limits.c msg_limits.c \
sem_limits.c proclist.c procstate.c procuid.c \
proctime.c procmem.c procsignal.c prockernel.c \
- procsegment.c procargs.c procmap.c netload.c \
- ppp.c
+ procsegment.c procargs.c procmap.c netlist.c \
+ netload.c ppp.c
libgtop_sysdeps_suid_2_0_la_LDFLAGS = $(LT_VERSION_INFO)
diff --git a/sysdeps/freebsd/netlist.c b/sysdeps/freebsd/netlist.c
new file mode 100644
index 00000000..62411732
--- /dev/null
+++ b/sysdeps/freebsd/netlist.c
@@ -0,0 +1,63 @@
+/* $Id$ */
+
+/*
+ This file is part of LibGTop 2.0.
+
+ LibGTop is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License,
+ or (at your option) any later version.
+
+ LibGTop is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with LibGTop; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+
+#include <config.h>
+#include <glibtop/netlist.h>
+#include <glibtop/error.h>
+
+#include <net/if.h>
+
+
+static const unsigned long _glibtop_sysdeps_netlist = (1 << GLIBTOP_NETLIST_NUMBER);
+
+/* Init function. */
+
+void
+glibtop_init_netlist_s (glibtop *server)
+{
+ server->sysdeps.netlist = _glibtop_sysdeps_netlist;
+}
+
+
+char**
+glibtop_get_netlist_s (glibtop *server, glibtop_netlist *buf)
+{
+ struct if_nameindex *ifstart, *ifs;
+ GPtrArray *devices;
+
+ ifs = ifstart = if_nameindex();
+
+ devices = g_ptr_array_new();
+
+ while(ifs && ifs->if_name) {
+ g_ptr_array_add(devices, g_strdup(ifs->if_name));
+ buf->number++;
+ }
+
+ if_freenameindex(ifstart);
+
+ buf->flags = _glibtop_sysdeps_netlist;
+
+ g_ptr_array_add(devices, NULL);
+
+ return (char **) g_ptr_array_free(devices, FALSE);
+}
+