Date: Mon, 12 Jun 2006 17:17:35 -0700 (PDT) From: "Eric P. Scott" <eps+pbug0606@ana.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/98885: net/wmwifi could be quieter Message-ID: <200606130017.k5D0HZTt012100@anna.ana.com> Resent-Message-ID: <200606130020.k5D0KHY2065203@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 98885 >Category: ports >Synopsis: net/wmwifi could be quieter >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Jun 13 00:20:17 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Eric P. Scott >Release: FreeBSD 6.1-RELEASE i386 >Organization: ana-systems, Inc. >Environment: System: FreeBSD tools 6.1-RELEASE FreeBSD 6.1-RELEASE #0: Sun May 7 04:32:43 UTC 2006 root@opus.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386 >Description: wmwifi [erroneously] attempts to access non-wireless network interfaces, then complains when inappropriate ioctl()s fail. The offending code appears in the FreeBSD port, not the original distribution. Comments in CVS indicate this is a known problem. >How-To-Repeat: Execute wmwifi from a shell; middle- or right-click on its window. A message like: wmwifi: ioctl for interface plip0 failed: Invalid argument will appear. >Fix: Instead of excluding lo0 by name, why not avoid all loopback and point-to-point interfaces? While this isn't a complete solution, it is an inexpensive "sanity check" that should provide a noticeable improvement. --- net/wmwifi/files/patch-wireless.c.orig Wed Jul 13 14:35:27 2005 +++ net/wmwifi/files/patch-wireless.c Sat Jun 10 15:52:31 2006 @@ -1,5 +1,5 @@ --- src/wireless.c.orig Tue Mar 9 20:39:17 2004 -+++ src/wireless.c Mon Jul 11 10:57:43 2005 ++++ src/wireless.c Sun Jun 11 00:46:29 2006 @@ -143,6 +143,7 @@ max = get_max_ifs(); @@ -8,6 +8,17 @@ if (old > max) old = max; /* just be sure to not be out of bounds */ +@@ -178,8 +179,8 @@ + len = sizeof(ifmd); + sysctl(name, 6, &ifmd, &len, NULL, 0); + +- /* skip loopback interface */ +- if (!strcmp(ifmd.ifmd_name, "lo0")) ++ /* skip loopback and point-to-point interfaces */ ++ if ((ifmd.ifmd_flags&(IFF_LOOPBACK|IFF_POINTOPOINT))!=0) + continue; + + s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); @@ -193,9 +194,11 @@ if (ioctl(s, SIOCGIFMEDIA, (caddr_t) &ifmr) < 0) >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200606130017.k5D0HZTt012100>