diff options
author | kwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059> | 2010-08-14 17:59:19 +0800 |
---|---|---|
committer | kwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059> | 2010-08-14 17:59:19 +0800 |
commit | 3de9eed7e7ace3896b282a0de7b493e7123dd04c (patch) | |
tree | 2fbcfd294f629928a1fa3642f399bf4e399d9d1a /net/gnome-nettool/files/patch-src_info.c | |
parent | 54bdc451257345fc952c09368cd5ebd45a57f88d (diff) | |
download | marcuscom-ports-3de9eed7e7ace3896b282a0de7b493e7123dd04c.tar marcuscom-ports-3de9eed7e7ace3896b282a0de7b493e7123dd04c.tar.gz marcuscom-ports-3de9eed7e7ace3896b282a0de7b493e7123dd04c.tar.bz2 marcuscom-ports-3de9eed7e7ace3896b282a0de7b493e7123dd04c.tar.lz marcuscom-ports-3de9eed7e7ace3896b282a0de7b493e7123dd04c.tar.xz marcuscom-ports-3de9eed7e7ace3896b282a0de7b493e7123dd04c.tar.zst marcuscom-ports-3de9eed7e7ace3896b282a0de7b493e7123dd04c.zip |
Update to 2.31.6.
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@14395 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'net/gnome-nettool/files/patch-src_info.c')
-rw-r--r-- | net/gnome-nettool/files/patch-src_info.c | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/net/gnome-nettool/files/patch-src_info.c b/net/gnome-nettool/files/patch-src_info.c new file mode 100644 index 000000000..88a107e6f --- /dev/null +++ b/net/gnome-nettool/files/patch-src_info.c @@ -0,0 +1,76 @@ +--- src/info.c.orig 2008-12-08 23:29:39.000000000 -0500 ++++ src/info.c 2009-02-27 16:33:49.000000000 -0500 +@@ -20,6 +20,10 @@ + #include <gtk/gtk.h> + #include <glib/gi18n.h> + #include <glib/gprintf.h> ++#include <sys/types.h> ++#include <string.h> ++#include <errno.h> ++#include <unistd.h> + + #ifdef HAVE_CONFIG_H + # include <config.h> +@@ -37,6 +41,9 @@ + #include <sys/ioctl.h> + #include <stdlib.h> + #include <net/if.h> ++#ifdef __FreeBSD__ ++#include <net/if_media.h> ++#endif + + #include <glibtop.h> + #include <glibtop/netlist.h> +@@ -61,6 +68,7 @@ static InfoInterfaceDescription info_ifa + { N_("Ethernet Interface"), INFO_INTERFACE_ETH, "16_ethernet.xpm", "eth", NULL }, + { N_("Wireless Interface"), INFO_INTERFACE_WLAN, "wavelan-16.png", "wlan", NULL }, + { N_("Modem Interface"), INFO_INTERFACE_PPP, "16_ppp.xpm", "ppp", NULL }, ++ { N_("Modem Interface"), INFO_INTERFACE_PPP, "16_ppp.xpm", "tun", NULL }, + { N_("Parallel Line Interface"), INFO_INTERFACE_PLIP, "16_plip.xpm", "plip", NULL }, + { N_("Infrared Interface"), INFO_INTERFACE_IRLAN, "irda-16.png", "irlan", NULL }, + { N_("Loopback Interface"), INFO_INTERFACE_LO, "16_loopback.xpm", "lo", NULL }, +@@ -131,9 +139,42 @@ info_get_interface_from_dev_name (const + { + gint i; + gchar *path; +- ++ gchar *dev_type = NULL; ++#if defined(__FreeBSD__) ++ int s; ++ struct ifmediareq ifmr; ++ ++ if ((s = socket (AF_INET, SOCK_DGRAM, 0)) > -1) { ++ ++ (void) memset (&ifmr, 0, sizeof (ifmr)); ++ (void) strncpy (ifmr.ifm_name, dev_name, sizeof (ifmr.ifm_name)); ++ ++ if (ioctl (s, SIOCGIFMEDIA, (caddr_t) &ifmr) > -1) { ++ switch (IFM_TYPE (ifmr.ifm_active)) { ++ case IFM_ETHER: ++ dev_type = "eth"; ++ break; ++ case IFM_FDDI: ++ case IFM_TOKEN: ++#ifdef IFM_ATM ++ case IFM_ATM: ++#endif ++ dev_type = "other_type"; ++ break; ++ case IFM_IEEE80211: ++ dev_type = "wlan"; ++ break; ++ } ++ } ++ close (s); ++ } ++#endif /* defined(__FreeBSD__) */ ++ ++ if (!dev_type) ++ dev_type = (gchar *) dev_name; ++ + for (i = 0; info_iface_desc[i].name; i++) +- if (strstr (dev_name, info_iface_desc[i].prefix) == dev_name) { ++ if (strstr (dev_type, info_iface_desc[i].prefix) == dev_type) { + (*iface) = g_strdup_printf ("%s (%s)", _(info_iface_desc[i].name), dev_name); + if (info_iface_desc[i].pixbuf == NULL) { + path = g_build_filename (PIXMAPS_DIR, info_iface_desc[i].icon, NULL); |