aboutsummaryrefslogtreecommitdiff
path: root/modules/network.c
diff options
context:
space:
mode:
authorSimon Quigley <tsimonq2@ubuntu.com>2017-08-16 04:32:39 -0500
committerSimon Quigley <tsimonq2@ubuntu.com>2017-08-16 04:32:39 -0500
commit9a9db98089717990cd5e0eef529f6bb0819ebe46 (patch)
treea9afaabce984d5fe552fa8bf1a9405db9bdd2699 /modules/network.c
parent69a2124e9a081518297951256eb5c8d72d93361f (diff)
New upstream version 0.5.1+git20170815
Diffstat (limited to 'modules/network.c')
-rw-r--r--modules/network.c189
1 files changed, 96 insertions, 93 deletions
diff --git a/modules/network.c b/modules/network.c
index 18f8ba65..f27a159a 100644
--- a/modules/network.c
+++ b/modules/network.c
@@ -80,51 +80,46 @@ void scan_statistics(gboolean reload)
FILE *netstat;
gchar buffer[256];
gchar *netstat_path;
-
+ int line = 0;
+
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",
+
+ } else {
+ gchar *tmp = buffer;
+
+ while (*tmp && isspace(*tmp)) tmp++;
+
+ __statistics = h_strdup_cprintf("<b> </b>#%d=%s\n",
__statistics,
- g_strstrip(tmp1),
- g_strstrip(tmp2));
+ line++, tmp);
}
}
pclose(netstat);
}
-
+
g_free(command_line);
g_free(netstat_path);
}
-
+
SCAN_END();
}
@@ -133,24 +128,24 @@ 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,
@@ -159,15 +154,15 @@ void scan_dns(gboolean reload)
__nameservers = h_strdup_cprintf("%s=%s\n",
__nameservers,
ip, hbuf);
-
- }
-
+
+ }
+
shell_status_pulse();
- }
+ }
}
fclose(resolv);
}
-
+
SCAN_END();
}
@@ -184,15 +179,15 @@ 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);
@@ -203,7 +198,7 @@ void scan_route(gboolean reload)
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),
@@ -211,14 +206,14 @@ void scan_route(gboolean reload)
g_strstrip(buffer + 48),
g_strstrip(buffer + 32));
}
-
+
pclose(route);
}
-
+
g_free(command_line);
g_free(route_path);
}
-
+
SCAN_END();
}
@@ -227,12 +222,12 @@ 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);
@@ -240,17 +235,17 @@ void scan_arp(gboolean reload)
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();
}
@@ -260,15 +255,15 @@ 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';
@@ -284,91 +279,99 @@ void scan_connections(gboolean reload)
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"
+ return g_strdup_printf("[%s]\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);
+ "ColumnTitle$TextValue=%s\n" /* IP Address */
+ "ColumnTitle$Value=%s\n" /* Interface */
+ "ColumnTitle$Extra1=%s\n" /* MAC Address */
+ "ShowColumnHeaders=true\n",
+ _("ARP Table"), __arp_table,
+ _("IP Address"), _("Interface"), _("MAC Address") );
}
gchar *callback_shares()
{
- return g_strdup_printf("[SAMBA]\n"
- "%s\n"
- "[NFS]\n"
- "%s", smb_shares_list, nfs_shares_list);
+ return g_strdup_printf("[%s]\n"
+ "%s\n"
+ "[%s]\n"
+ "%s",
+ _("SAMBA"), smb_shares_list,
+ _("NFS"), nfs_shares_list);
}
gchar *callback_dns()
{
- return g_strdup_printf(_("[Name servers]\n"
+ return g_strdup_printf("[%s]\n"
"%s\n"
"[$ShellParam$]\n"
- "ColumnTitle$TextValue=IP Address\n"
- "ColumnTitle$Value=Name\n"
- "ShowColumnHeaders=true\n"), __nameservers);
+ "ColumnTitle$TextValue=%s\n" /* IP Address */
+ "ColumnTitle$Value=%s\n" /* Name */
+ "ShowColumnHeaders=true\n",
+ _("Name Servers"), __nameservers,
+ _("IP Address"), _("Name") );
}
gchar *callback_connections()
{
- return g_strdup_printf(_("[Connections]\n"
+ return g_strdup_printf("[%s]\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);
+ "ColumnTitle$TextValue=%s\n" /* Local Address */
+ "ColumnTitle$Value=%s\n" /* Protocol */
+ "ColumnTitle$Extra1=%s\n" /* Foreign Address */
+ "ColumnTitle$Extra2=%s\n" /* State */
+ "ShowColumnHeaders=true\n",
+ _("Connections"), __connections,
+ _("Local Address"), _("Protocol"), _("Foreign Address"), _("State") );
}
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);
+ return g_strdup_printf("%s\n"
+ "[$ShellParam$]\n"
+ "ReloadInterval=3000\n"
+ "ViewType=1\n"
+ "ColumnTitle$TextValue=%s\n" /* Interface */
+ "ColumnTitle$Value=%s\n" /* IP Address */
+ "ColumnTitle$Extra1=%s\n" /* Sent */
+ "ColumnTitle$Extra2=%s\n" /* Received */
+ "ShowColumnHeaders=true\n"
+ "%s",
+ network_interfaces,
+ _("Interface"), _("IP Address"), _("Sent"), _("Received"),
+ network_icons);
}
gchar *callback_route()
{
- return g_strdup_printf(_("[IP routing table]\n"
+ return g_strdup_printf("[%s]\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);
+ "ColumnTitle$TextValue=%s\n" /* Destination / Gateway */
+ "ColumnTitle$Value=%s\n" /* Interface */
+ "ColumnTitle$Extra1=%s\n" /* Flags */
+ "ColumnTitle$Extra2=%s\n" /* Mask */
+ "ShowColumnHeaders=true\n",
+ _("IP routing table"), __routing_table,
+ _("Destination/Gateway"), _("Interface"), _("Flags"), _("Mask") );
}
gchar *callback_statistics()
@@ -411,12 +414,12 @@ void hi_module_init(void)
void hi_module_deinit(void)
{
moreinfo_del_with_prefix("NET");
-
+
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);