diff options
| author | Agney Lopes Roth Ferraz <agney@debian.org> | 2007-04-09 11:45:31 -0300 | 
|---|---|---|
| committer | Simon Quigley <tsimonq2@ubuntu.com> | 2017-06-19 14:38:41 -0500 | 
| commit | adb3993ba087ede46f62d5f018e17b07e99b5260 (patch) | |
| tree | 67b4fa7e224f09d21eb76060422ca23e50e6dfe0 /arch/linux/common/.svn/text-base/net.h.svn-base | |
| parent | b3e31ae3787c8806f48c85a52bba9aa3554e2c07 (diff) | |
| parent | 11b8179a57e675c6672cbe649c655230ae3e9744 (diff) | |
Import Debian changes 0.4.2.1-1
hardinfo (0.4.2.1-1) unstable; urgency=low
  * New upstream release.
  * Fixed segfault on device entry (Closes: #387955)
Diffstat (limited to 'arch/linux/common/.svn/text-base/net.h.svn-base')
| -rw-r--r-- | arch/linux/common/.svn/text-base/net.h.svn-base | 203 | 
1 files changed, 0 insertions, 203 deletions
| diff --git a/arch/linux/common/.svn/text-base/net.h.svn-base b/arch/linux/common/.svn/text-base/net.h.svn-base deleted file mode 100644 index 87e7e59b..00000000 --- a/arch/linux/common/.svn/text-base/net.h.svn-base +++ /dev/null @@ -1,203 +0,0 @@ -/* - *    HardInfo - Displays System Information - *    Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@linuxmag.com.br> - * - *    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 - */ - -static gchar *network_interfaces = NULL; - -#include <sys/ioctl.h> -#include <net/if.h> -#include <netinet/in.h> -#include <linux/sockios.h> -#include <sys/socket.h> - -typedef struct _NetInfo NetInfo; -struct _NetInfo { -    char                name[16];  -    int                 mtu; -    unsigned char       mac[8]; -}; - - -void get_net_info(char *if_name, NetInfo *netinfo) -{ -    struct ifreq ifr; -    int fd; - -    fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP); - -    strcpy(ifr.ifr_name, if_name); -    strcpy(netinfo->name, if_name); - -    if (ioctl(fd, SIOCGIFMTU, &ifr) < 0) { -        netinfo->mtu = 0; -    } else { -        netinfo->mtu = ifr.ifr_mtu; -    } -     -    strcpy(ifr.ifr_name, if_name); -    if (ioctl(fd, SIOCGIFHWADDR, &ifr) < 0) { -        memset(netinfo->mac, 0, 8); -    } else { -        memcpy(netinfo->mac, ifr.ifr_ifru.ifru_hwaddr.sa_data, 8); -    } - -    shutdown(fd, 0); -} - -static struct { -    char *type; -    char *label; -} netdev2type[] = { -    { "eth",	"Ethernet" }, -    { "lo",	"Loopback" }, -    { "ppp",	"Point-to-Point" }, -    { "ath",	"Wireless" }, -    { "wlan",	"Wireless" }, -    { "tun",    "Virtual Point-to-Point (TUN)" }, -    { "tap",    "Ethernet (TAP)" }, -    { "plip",   "Parallel Line Internet Protocol" }, -    { "irlan",  "Infrared" }, -    { "slip",   "Serial Line Internet Protocol" }, -    { "isdn",	"Integrated Services Digital Network" }, -    { "sit",	"IPv6-over-IPv4 Tunnel" }, -    { "vmnet8", "VMWare Virtual Network Interface (NAT)" }, -    { "vmnet",  "VMWare Virtual Network Interface" }, -    { NULL,	"Unknown" }, -}; - -static const gchar * -net_get_iface_type(gchar *name) -{ -    int i; -     -    for (i = 0; netdev2type[i].type; i++) { -        if (g_str_has_prefix(name, netdev2type[i].type)) -            break; -    } -     -    return netdev2type[i].label; -} - -static gboolean -remove_net_devices(gpointer key, gpointer value, gpointer data) -{ -    if (!strncmp((gchar *) key, "NET", 4)) { -	g_free((gchar *) key); -	g_free((GtkTreeIter *) value); -	return TRUE; -    } -    return FALSE; -} - -static void -scan_net_interfaces_24(void) -{ -    FILE *proc_net; -    NetInfo ni; -    gchar buffer[256]; -    gchar *devid, *detailed; -    gulong recv_bytes; -    gulong recv_errors; -    gulong recv_packets; -     -    gulong trans_bytes; -    gulong trans_errors; -    gulong trans_packets; -     -    if (!g_file_test("/proc/net/dev", G_FILE_TEST_EXISTS)) { -        if (network_interfaces) { -            g_free(network_interfaces); -            network_interfaces = g_strdup("[Network Interfaces]\n" -                                          "None found=\n"); -        } - -	return; -    } - -    if (network_interfaces) { -        g_free(network_interfaces); -    } -     -    network_interfaces = g_strdup("[Network Interfaces]\n"); - -    proc_net = fopen("/proc/net/dev", "r"); -    while (fgets(buffer, 256, proc_net)) { -	if (strchr(buffer, ':')) { -	    gint trash; -	    gchar ifacename[16]; -	    gchar *buf = buffer; -	    gint i; - -	    buf = g_strstrip(buf); - -	    memset(ifacename, 0, 16); - -	    for (i = 0; buffer[i] != ':' && i < 16; i++) { -		ifacename[i] = buffer[i]; -	    } - -	    buf = strchr(buf, ':') + 1; - -	    /* iface: bytes packets errs drop fifo frame compressed multicast */ -	    sscanf(buf, "%ld %ld %ld %d %d %d %d %d %ld %ld %ld", -		   &recv_bytes, &recv_packets, -		   &recv_errors, &trash, &trash, &trash, &trash, -		   &trash, &trans_bytes, &trans_packets, -		   &trans_errors); - -            gfloat recv_mb = recv_bytes / 1048576.0; -            gfloat trans_mb = trans_bytes / 1048576.0; -             -            devid = g_strdup_printf("NET%s", ifacename); -	    network_interfaces = g_strdup_printf("%s$%s$%s=Sent %.2fMiB, received %.2fMiB\n", -                                                  network_interfaces, -                                                  devid, -                                                  ifacename, -                                                  trans_mb, -                                                  recv_mb); -             -            get_net_info(ifacename, &ni); -            detailed = g_strdup_printf("[Network Adapter Properties]\n" -                                        "Interface Type=%s\n" -                                        "Hardware Address=%02x:%02x:%02x:%02x:%02x:%02x\n" -                                        "MTU=%d\n" -                                        "Bytes Sent=%ld (%.2fMiB)\n" -                                        "Bytes Received=%ld (%.2fMiB)\n", -                                        net_get_iface_type(ifacename), -                                        ni.mac[0], ni.mac[1], -                                        ni.mac[2], ni.mac[3], -                                        ni.mac[4], ni.mac[5], -                                        ni.mtu, -                                        recv_bytes, recv_mb, -                                        trans_bytes, trans_mb); -            g_hash_table_insert(moreinfo, devid, detailed); -	} -    } -    fclose(proc_net); -} - -static void -scan_net_interfaces(void) -{ -    /* FIXME: See if we're running Linux 2.6 and if /sys is mounted, then use -              that instead of /proc/net/dev */ - -    /* remove old devices from global device table */ -    g_hash_table_foreach_remove(moreinfo, remove_net_devices, NULL); - -    scan_net_interfaces_24(); -} | 
