aboutsummaryrefslogtreecommitdiff
path: root/hardinfo2/network.c
diff options
context:
space:
mode:
authorLeandro Augusto Fogolin Pereira <leandro@zorg.(none)>2009-01-23 13:43:07 -0200
committerLeandro Augusto Fogolin Pereira <leandro@zorg.(none)>2009-01-23 13:43:07 -0200
commit91fd16989466928ce9abd67bf6710dd46825b78d (patch)
tree73494353a650372aba89d35ab73911248a29e0ca /hardinfo2/network.c
parente9cb4135df043c711bb18fb18fbe4ea551dcb645 (diff)
Implement netstat-like list
Diffstat (limited to 'hardinfo2/network.c')
-rw-r--r--hardinfo2/network.c20
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()