diff options
| author | Leandro A. F. Pereira <leandro@hardinfo.org> | 2010-05-03 09:27:26 -0300 | 
|---|---|---|
| committer | Leandro A. F. Pereira <leandro@hardinfo.org> | 2010-05-03 21:08:06 -0300 | 
| commit | 9273c075a2f993c5154614b70233d8f74515c851 (patch) | |
| tree | eb72a8c58e6bc8f4ca3b739d28fbecc269c0052d /hardinfo2/modules/network.c | |
| parent | 9a50155ec3e27aa6cedf3f118196f1947c769a29 (diff) | |
Move files from hardinfo2 to root.
Diffstat (limited to 'hardinfo2/modules/network.c')
| -rw-r--r-- | hardinfo2/modules/network.c | 443 | 
1 files changed, 0 insertions, 443 deletions
diff --git a/hardinfo2/modules/network.c b/hardinfo2/modules/network.c deleted file mode 100644 index 168e04a9..00000000 --- a/hardinfo2/modules/network.c +++ /dev/null @@ -1,443 +0,0 @@ -/* - *    HardInfo - Displays System Information - *    Copyright (C) 2003-2008 Leandro A. F. Pereira <leandro@hardinfo.org> - * - *    This program 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, version 2. - * - *    This program 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 this program; if not, write to the Free Software - *    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA - */ - -#include <ctype.h> -#include <stdlib.h> -#include <string.h> -#include <gtk/gtk.h> -#include <config.h> -#include <time.h> -#include <string.h> -#include <sys/utsname.h> -#include <sys/stat.h> - -#include <sys/socket.h> -#include <netdb.h> - -#include <hardinfo.h> -#include <iconcache.h> -#include <shell.h> - -#include <vendor.h> - -#include "network.h" - -GHashTable *moreinfo = NULL; - -/* Callbacks */ -gchar *callback_network(); -gchar *callback_route(); -gchar *callback_dns(); -gchar *callback_connections(); -gchar *callback_shares(); -gchar *callback_arp(); -gchar *callback_statistics(); - -/* Scan callbacks */ -void scan_network(gboolean reload); -void scan_route(gboolean reload); -void scan_dns(gboolean reload); -void scan_connections(gboolean reload); -void scan_shares(gboolean reload); -void scan_arp(gboolean reload); -void scan_statistics(gboolean reload); - -static ModuleEntry entries[] = { -    {"Interfaces", "network-interface.png", callback_network, scan_network, MODULE_FLAG_NONE}, -    {"IP Connections", "network-connections.png", callback_connections, scan_connections, MODULE_FLAG_NONE}, -    {"Routing Table", "network.png", callback_route, scan_route, MODULE_FLAG_NONE}, -    {"ARP Table", "module.png", callback_arp, scan_arp, MODULE_FLAG_NONE}, -    {"DNS Servers", "dns.png", callback_dns, scan_dns, MODULE_FLAG_NONE}, -    {"Statistics", "network-statistics.png", callback_statistics, scan_statistics, MODULE_FLAG_NONE}, -    {"Shared Directories", "shares.png", callback_shares, scan_shares, MODULE_FLAG_NONE}, -    {NULL}, -}; - -void scan_shares(gboolean reload) -{ -    SCAN_START(); -    scan_samba(); -    scan_nfs_shared_directories(); -    SCAN_END(); -} - -static gchar *__statistics = NULL; -void scan_statistics(gboolean reload) -{ -    FILE *netstat; -    gchar buffer[256]; -    gchar *netstat_path; -     -    SCAN_START(); -     -    g_free(__statistics); -    __statistics = g_strdup(""); -     -    if ((netstat_path = find_program("netstat"))) { -      gchar *command_line = g_strdup_printf("%s -s", netstat_path); -       -      if ((netstat = popen(command_line, "r"))) { -        while (fgets(buffer, 256, netstat)) { -          if (!isspace(buffer[0]) && strchr(buffer, ':')) { -            gchar *tmp; -             -            tmp = g_ascii_strup(strend(buffer, ':'), -1); -             -            __statistics = h_strdup_cprintf("[%s]\n", -                                            __statistics, -                                            tmp); -             -            g_free(tmp); -          } else if (isdigit(buffer[4])) { -            gchar *tmp1 = buffer + 4, -                  *tmp2 = tmp1; -             -            while (*tmp2 && !isspace(*tmp2)) tmp2++; -            *tmp2 = 0; -            tmp2++; -             -            *tmp2 = toupper(*tmp2); -             -            __statistics = h_strdup_cprintf("%s=%s\n", -                                            __statistics, -                                            g_strstrip(tmp1), -                                            g_strstrip(tmp2)); -          } -        } - -        pclose(netstat); -      } -       -      g_free(command_line); -      g_free(netstat_path); -    } -     -    SCAN_END(); -} - -static gchar *__nameservers = NULL; -void scan_dns(gboolean reload) -{ -    FILE *resolv; -    gchar buffer[256]; -     -    SCAN_START(); -     -    g_free(__nameservers); -    __nameservers = g_strdup(""); -     -    if ((resolv = fopen("/etc/resolv.conf", "r"))) { -      while (fgets(buffer, 256, resolv)) { -        if (g_str_has_prefix(buffer, "nameserver")) { -          gchar *ip; -          struct sockaddr_in sa; -          char hbuf[NI_MAXHOST]; -           -          ip = g_strstrip(buffer + sizeof("nameserver")); -           -          sa.sin_family = AF_INET; -          sa.sin_addr.s_addr = inet_addr(ip); -           -          if (getnameinfo((struct sockaddr *)&sa, sizeof(sa), hbuf, sizeof(hbuf), NULL, 0, NI_NAMEREQD)) { -              __nameservers = h_strdup_cprintf("%s=\n", -                                               __nameservers, -                                               ip); -          } else { -              __nameservers = h_strdup_cprintf("%s=%s\n", -                                               __nameservers, -                                               ip, hbuf); -           -          }           -           -          shell_status_pulse(); -        }  -      } -      fclose(resolv); -    } -     -    SCAN_END(); -} - -void scan_network(gboolean reload) -{ -    SCAN_START(); -    scan_net_interfaces(); -    SCAN_END(); -} - -static gchar *__routing_table = NULL; -void scan_route(gboolean reload) -{ -    FILE *route; -    gchar buffer[256]; -    gchar *route_path; -     -    SCAN_START(); - -    g_free(__routing_table); -    __routing_table = g_strdup(""); -     -    if ((route_path = find_program("route"))) { -      gchar *command_line = g_strdup_printf("%s -n", route_path); -       -      if ((route = popen(command_line, "r"))) { -        /* eat first two lines */ -        (void)fgets(buffer, 256, route); -        (void)fgets(buffer, 256, route); - -        while (fgets(buffer, 256, route)) { -          buffer[15] = '\0'; -          buffer[31] = '\0'; -          buffer[47] = '\0'; -          buffer[53] = '\0'; -           -          __routing_table = h_strdup_cprintf("%s / %s=%s|%s|%s\n", -                                             __routing_table, -                                             g_strstrip(buffer), g_strstrip(buffer + 16), -                                             g_strstrip(buffer + 72), -                                             g_strstrip(buffer + 48), -                                             g_strstrip(buffer + 32)); -        } -         -        pclose(route); -      } -       -      g_free(command_line); -      g_free(route_path); -    } -     -    SCAN_END(); -} - -static gchar *__arp_table = NULL; -void scan_arp(gboolean reload) -{ -    FILE *arp; -    gchar buffer[256]; -     -    SCAN_START(); - -    g_free(__arp_table); -    __arp_table = g_strdup(""); -     -    if ((arp = fopen("/proc/net/arp", "r"))) { -      /* eat first line */ -      (void)fgets(buffer, 256, arp); - -      while (fgets(buffer, 256, arp)) { -        buffer[15] = '\0'; -        buffer[58] = '\0'; -         -        __arp_table = h_strdup_cprintf("%s=%s|%s\n", -                                       __arp_table, -                                       g_strstrip(buffer), -                                       g_strstrip(buffer + 72), -                                       g_strstrip(buffer + 41)); -      } -       -      fclose(arp); -    } -     -    SCAN_END(); -} - -static gchar *__connections = NULL; -void scan_connections(gboolean reload) -{ -    FILE *netstat; -    gchar buffer[256]; -    gchar *netstat_path; -     -    SCAN_START(); - -    g_free(__connections); -    __connections = g_strdup(""); -     -    if ((netstat_path = find_program("netstat"))) { -      gchar *command_line = g_strdup_printf("%s -an", netstat_path); -       -      if ((netstat = popen("netstat -an", "r"))) { -        while (fgets(buffer, 256, netstat)) { -          buffer[6] = '\0'; -          buffer[43] = '\0'; -          buffer[67] = '\0'; - -          if (g_str_has_prefix(buffer, "tcp") || g_str_has_prefix(buffer, "udp")) { -            __connections = h_strdup_cprintf("%s=%s|%s|%s\n", -                                             __connections, -                                             g_strstrip(buffer + 20),	/* local address */ -                                             g_strstrip(buffer),		/* protocol */ -                                             g_strstrip(buffer + 44),	/* foreign address */ -                                             g_strstrip(buffer + 68));	/* state */ -          } -        } -         -        pclose(netstat); -      } -       -      g_free(command_line); -      g_free(netstat_path); -    } -     -    SCAN_END(); -} - -gchar *callback_arp() -{ -    return g_strdup_printf("[ARP Table]\n" -                           "%s\n" -                           "[$ShellParam$]\n" -                           "ReloadInterval=3000\n" -                           "ColumnTitle$TextValue=IP Address\n" -                           "ColumnTitle$Value=Interface\n" -                           "ColumnTitle$Extra1=MAC Address\n" -                           "ShowColumnHeaders=true\n", -                           __arp_table); -} - -gchar *callback_shares() -{ -    return g_strdup_printf("[SAMBA]\n" -			   "%s\n" -			   "[NFS]\n" -			   "%s", smb_shares_list, nfs_shares_list); -} - -gchar *callback_dns() -{ -    return g_strdup_printf("[Name servers]\n" -                           "%s\n" -                           "[$ShellParam$]\n" -                           "ColumnTitle$TextValue=IP Address\n" -                           "ColumnTitle$Value=Name\n" -                           "ShowColumnHeaders=true\n", __nameservers); -} - -gchar *callback_connections() -{ -    return g_strdup_printf("[Connections]\n" -                           "%s\n" -                           "[$ShellParam$]\n" -                           "ReloadInterval=3000\n" -                           "ColumnTitle$TextValue=Local Address\n" -                           "ColumnTitle$Value=Protocol\n" -                           "ColumnTitle$Extra1=Foreign Address\n" -                           "ColumnTitle$Extra2=State\n" -                           "ShowColumnHeaders=true\n", -                           __connections); -} - -gchar *callback_network() -{ -    return g_strdup_printf("%s\n" -                           "[$ShellParam$]\n" -			   "ReloadInterval=3000\n" -			   "ViewType=1\n" -			   "ColumnTitle$TextValue=Interface\n" -			   "ColumnTitle$Value=IP Address\n" -			   "ColumnTitle$Extra1=Sent\n" -			   "ColumnTitle$Extra2=Received\n" -			   "ShowColumnHeaders=true\n" -			   "%s", -			   network_interfaces, -			   network_icons); -} - -gchar *callback_route() -{ -    return g_strdup_printf("[IP routing table]\n" -                           "%s\n" -                           "[$ShellParam$]\n" -                           "ViewType=0\n" -                           "ReloadInterval=3000\n" -                           "ColumnTitle$TextValue=Destination / Gateway\n" -                           "ColumnTitle$Value=Interface\n" -                           "ColumnTitle$Extra1=Flags\n" -                           "ColumnTitle$Extra2=Mask\n" -                           "ShowColumnHeaders=true\n", -                           __routing_table); -} - -gchar *callback_statistics() -{ -    return g_strdup_printf("%s\n" -                           "[$ShellParam$]\n" -                           "ReloadInterval=3000\n", -                            __statistics); -} - -gchar *hi_more_info(gchar * entry) -{ -    gchar *info = (gchar *) g_hash_table_lookup(moreinfo, entry); - -    if (info) -	return g_strdup(info); - -    return g_strdup_printf("[%s]", entry); -} - -ModuleEntry *hi_module_get_entries(void) -{ -    return entries; -} - -gchar *hi_module_get_name(void) -{ -    return g_strdup("Network"); -} - -guchar hi_module_get_weight(void) -{ -    return 160; -} - -void hi_module_init(void) -{ -    moreinfo = -	g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); -} - -void hi_module_deinit(void) -{ -    h_hash_table_remove_all(moreinfo); -    g_hash_table_destroy(moreinfo); -     -    g_free(smb_shares_list); -    g_free(nfs_shares_list); -    g_free(network_interfaces); -    g_free(network_icons); -     -    g_free(__statistics); -    g_free(__nameservers); -    g_free(__arp_table); -    g_free(__routing_table); -    g_free(__connections); -} - -ModuleAbout *hi_module_get_about(void) -{ -    static ModuleAbout ma[] = { -	{ -	 .author = "Leandro A. F. Pereira", -	 .description = "Gathers information about this computer's network connection", -	 .version = VERSION, -	 .license = "GNU GPL version 2"} -    }; - -    return ma; -}  | 
