changes
[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
33 static int ret;
34
35
36 static void
37 print_netlist ()
38 {
39   glibtop_netlist netlist;
40   glibtop_netload netload;
41   int i;
42   char ** tmp;
43   uint8_t *address;
44   uint8_t *netmask;
45
46   tmp = glibtop_get_netlist (&netlist);
47
48   printf ("Network information: %u devices\n", netlist.number);
49   for (i = 0; i < netlist.number; ++i)
50   {
51     printf ("Device %i: %s\n", i, tmp[i]);
52     glibtop_get_netload (&netload, tmp[i]);
53     address = (uint8_t *) &netload.address;
54     netmask = (uint8_t *) &netload.subnet;
55     printf ("\t%-50s: %u.%u.%u.%u\n", "IPv4 subnet", netmask[0], netmask[1], netmask[2],netmask[3]);
56     printf ("\t%-50s: %u.%u.%u.%u\n", "IPv4 address", address[0], address[1], address[2],address[3]);
57
58     printf ("\t%-50s: %llu\n", "packets in", (long long unsigned int) netload.packets_in);
59     printf ("\t%-50s: %llu\n", "packets out", (long long unsigned int) netload.packets_out);
60     printf ("\t%-50s: %llu\n", "packets total", (long long unsigned int) netload.packets_total);
61   }
62 }
63
64 /**
65  * The main function.
66  *
67  * @param argc number of arguments from the command line
68  * @param argv command line arguments
69  * @return 0 ok, 1 on error
70  */
71 int
72 main (int argc, char *const *argv)
73 {
74   if (NULL == glibtop_init())
75   {
76     fprintf (stderr, "Could not init gliptop!\n");
77     return 1;
78   }
79
80   /* Network information */
81   print_netlist ();
82
83   glibtop_close();
84   return ret;
85 }
86
87 /* end of ttest_glibtop_process.c */
88