network test
[oweals/gnunet.git] / src / sysmon / test_glibtop_network.c
1 /*
2      This file is part of GNUnet.
3      (C) 2001, 2002, 2004, 2005, 2006, 2007, 2009 Christian Grothoff (and other contributing authors)
4
5      GNUnet is free software; you can redistribute it and/or modify
6      it under the terms of the GNU General Public License as published
7      by the Free Software Foundation; either version 3, or (at your
8      option) any later version.
9
10      GNUnet is distributed in the hope that it will be useful, but
11      WITHOUT ANY WARRANTY; without even the implied warranty of
12      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13      General Public License for more details.
14
15      You should have received a copy of the GNU General Public License
16      along with GNUnet; see the file COPYING.  If not, write to the
17      Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18      Boston, MA 02111-1307, USA.
19 */
20
21 /**
22  * @file sysmon/test_glibtop_process.c
23  * @brief a brief test for glibtop
24  * @author Matthias Wachs
25  */
26
27 #include "platform.h"
28
29 #include <glibtop.h>
30 #include <glibtop/netlist.h>
31 #include <glibtop/netload.h>
32 #include <glib.h>
33
34 static int ret;
35
36
37 static void
38 print_netlist ()
39 {
40   glibtop_netlist netlist;
41   glibtop_netload netload;
42   int i;
43   char ** tmp;
44   uint8_t *address;
45   uint8_t *netmask;
46
47   tmp = glibtop_get_netlist (&netlist);
48
49   printf ("Network information: %u devices\n", netlist.number);
50   for (i = 0; i < netlist.number; ++i)
51   {
52     printf ("Device %i: %s\n", i, tmp[i]);
53     glibtop_get_netload (&netload, tmp[i]);
54     address = (uint8_t *) &netload.address;
55     netmask = (uint8_t *) &netload.subnet;
56     printf ("\t%-50s: %u.%u.%u.%u\n", "IPv4 subnet", netmask[0], netmask[1], netmask[2],netmask[3]);
57     printf ("\t%-50s: %u.%u.%u.%u\n", "IPv4 address", address[0], address[1], address[2],address[3]);
58
59     printf ("\t%-50s: %lu\n", "packets in", netload.packets_in);
60     printf ("\t%-50s: %lu\n", "packets out", netload.packets_out);
61     printf ("\t%-50s: %lu\n", "packets total", netload.packets_total);
62   }
63 }
64
65 /**
66  * The main function.
67  *
68  * @param argc number of arguments from the command line
69  * @param argv command line arguments
70  * @return 0 ok, 1 on error
71  */
72 int
73 main (int argc, char *const *argv)
74 {
75   if (NULL == glibtop_init())
76   {
77     fprintf (stderr, "Could not init gliptop!\n");
78     return 1;
79   }
80
81   /* Network information */
82   print_netlist ();
83
84   glibtop_close();
85   return ret;
86 }
87
88 /* end of ttest_glibtop_process.c */
89