diff options
author | Leandro Augusto Fogolin Pereira <leandro@zorg.(none)> | 2009-01-23 13:43:07 -0200 |
---|---|---|
committer | Leandro Augusto Fogolin Pereira <leandro@zorg.(none)> | 2009-01-23 13:43:07 -0200 |
commit | 91fd16989466928ce9abd67bf6710dd46825b78d (patch) | |
tree | 73494353a650372aba89d35ab73911248a29e0ca /hardinfo2/network.c | |
parent | e9cb4135df043c711bb18fb18fbe4ea551dcb645 (diff) |
Implement netstat-like list
Diffstat (limited to 'hardinfo2/network.c')
-rw-r--r-- | hardinfo2/network.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/hardinfo2/network.c b/hardinfo2/network.c index 10b291bd..913a14cc 100644 --- a/hardinfo2/network.c +++ b/hardinfo2/network.c @@ -51,7 +51,7 @@ void scan_arp(gboolean reload); static ModuleEntry entries[] = { {"Interfaces", "network.png", callback_network, scan_network}, - {"Connections", "module.png", callback_connections, scan_connections}, + {"IP Connections", "module.png", callback_connections, scan_connections}, {"Routing Table", "network-generic.png", callback_route, scan_route}, {"ARP Table", "module.png", callback_arp, scan_arp}, {"DNS Servers", "module.png", callback_dns, scan_dns}, @@ -184,6 +184,18 @@ void scan_connections(gboolean reload) 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, + buffer + 20, /* local address */ + buffer, /* protocol */ + buffer + 44, /* foreign address */ + buffer + 68);/* state */ + } } pclose(netstat); @@ -222,13 +234,15 @@ gchar *callback_dns() gchar *callback_connections() { return g_strdup_printf("[Connections]\n" - "Local Address=Protocol|Foreign Address|State\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"); + "ShowColumnHeaders=true\n", + __connections); } gchar *callback_network() |