summaryrefslogtreecommitdiff
path: root/hardinfo2/arch/linux/common
diff options
context:
space:
mode:
authorLeandro A. F. Pereira <leandro@hardinfo.org>2007-01-08 01:08:07 +0000
committerLeandro A. F. Pereira <leandro@hardinfo.org>2007-01-08 01:08:07 +0000
commitb1d1223551baa57174020af62c58016deca90096 (patch)
treea410c61c234de25400a0efa96a6f21c8f29e15d8 /hardinfo2/arch/linux/common
parentf11c77e39f595fda18aaa7035ee6e1f032cc6039 (diff)
Today's last commit. Yarr.
Diffstat (limited to 'hardinfo2/arch/linux/common')
-rw-r--r--hardinfo2/arch/linux/common/net.h30
1 files changed, 23 insertions, 7 deletions
diff --git a/hardinfo2/arch/linux/common/net.h b/hardinfo2/arch/linux/common/net.h
index 1d2e20ea..cd8b8706 100644
--- a/hardinfo2/arch/linux/common/net.h
+++ b/hardinfo2/arch/linux/common/net.h
@@ -40,6 +40,7 @@ struct _NetInfo {
unsigned char mac[8];
char ip[16];
char mask[16];
+ char broadcast[16];
};
void get_net_info(char *if_name, NetInfo *netinfo)
@@ -84,6 +85,15 @@ void get_net_info(char *if_name, NetInfo *netinfo)
} else {
sprintf(netinfo->mask, "%s", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr));
}
+
+ /* Broadcast Address */
+ strcpy(ifr.ifr_name, if_name);
+ if (ioctl(fd, SIOCGIFBRDADDR, &ifr) < 0) {
+ netinfo->broadcast[0] = 0;
+ } else {
+ sprintf(netinfo->broadcast, "%s", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr));
+ }
+
shutdown(fd, 0);
}
@@ -205,8 +215,9 @@ scan_net_interfaces_24(void)
detailed = g_strdup_printf("[Network Adapter Properties]\n"
"Interface Type=%s\n"
- "Hardware Address=%02x:%02x:%02x:%02x:%02x:%02x\n"
+ "Hardware Address (MAC)=%02x:%02x:%02x:%02x:%02x:%02x\n"
"MTU=%d\n"
+ "[Transfer Details]\n"
"Bytes Received=%ld (%.2fMiB)\n"
"Bytes Sent=%ld (%.2fMiB)\n",
net_get_iface_type(ifacename),
@@ -216,12 +227,17 @@ scan_net_interfaces_24(void)
ni.mtu,
recv_bytes, recv_mb,
trans_bytes, trans_mb);
- if (ni.ip[0]) {
- detailed = g_strconcat(detailed, "IP=", ni.ip, "\n", NULL);
- }
-
- if (ni.mask[0]) {
- detailed = g_strconcat(detailed, "Mask=", ni.mask, "\n", NULL);
+
+ if (ni.ip[0] || ni.mask[0] || ni.broadcast[0]) {
+ detailed = g_strdup_printf("%s\n"
+ "[Internet Protocol (IPv4)]\n"
+ "IP Address=%s\n"
+ "Mask=%s\n"
+ "Broadcast Address=%s\n",
+ detailed,
+ ni.ip[0] ? ni.ip : "Not set",
+ ni.mask[0] ? ni.mask : "Not set",
+ ni.broadcast[0] ? ni.broadcast : "Not set");
}
g_hash_table_insert(moreinfo, devid, detailed);