[Olsr-dev] freebsd fixes for src/bsd/net.c

Gianni Costanzi (spam-protected)
Fri Sep 7 10:09:10 CEST 2007


On 9/7/07, John Hay <(spam-protected)> wrote:
> Hi,
>
> The first part fix the broken use of sizeof() and the second part change
> the wireless interface detection to use the ieee80211 apis. The old
> wavelan apis has been removed from FreeBSD-current and so the upcoming
> version 7 will not have it. It should still work on 6.x too.
>
> John
> --
> John Hay -- (spam-protected) / (spam-protected)
>
>
> --- src/bsd/net.c.orig  2007-05-02 09:41:20.000000000 +0200
> +++ src/bsd/net.c       2007-08-21 21:01:57.000000000 +0200
> @@ -71,8 +71,6 @@
>  #ifndef FBSD_NO_80211
>  #include <net80211/ieee80211.h>
>  #include <net80211/ieee80211_ioctl.h>
> -#include <dev/wi/if_wavelan_ieee.h>
> -#include <dev/wi/if_wireg.h>
>  #endif
>  #endif
>
> @@ -557,7 +555,7 @@
>           sin6 = (const struct sockaddr_in6 *)ifa->ifa_addr;
>           if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr))
>             continue;
> -         strncpy(ifr6.ifr_name, ifname, sizeof(ifname));
> +         strncpy(ifr6.ifr_name, ifname, sizeof(ifr6.ifr_name));
>           if ((s6 = socket(AF_INET6, SOCK_DGRAM, 0)) < 0)
>             {
>               OLSR_PRINTF(3, "socket(AF_INET6,SOCK_DGRAM)");
> @@ -826,19 +824,17 @@
>  check_wireless_interface(char *ifname)
>  {
>  #if defined __FreeBSD__ &&  !defined FBSD_NO_80211
> -  struct wi_req        wreq;
> -  struct ifreq ifr;
> +  /* From FreeBSD ifconfig/ifieee80211.c ieee80211_status() */
> +  struct ieee80211req ireq;
> +  u_int8_t data[32];
> +
> +  memset(&ireq, 0, sizeof(ireq));
> +  strlcpy(ireq.i_name, ifname, sizeof(ireq.i_name));
> +  ireq.i_data = &data;
> +  ireq.i_type = IEEE80211_IOC_SSID;
> +  ireq.i_val = -1;
>
> -  memset((char *)&wreq, 0, sizeof(wreq));
> -  memset((char *)&ifr, 0, sizeof(ifr));
> -
> -  wreq.wi_len = WI_MAX_DATALEN;
> -  wreq.wi_type = WI_RID_IFACE_STATS;
> -
> -  strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
> -  ifr.ifr_data = (caddr_t)&wreq;
> -
> -  return (ioctl(olsr_cnf->ioctl_s, SIOCGWAVELAN, &ifr) >= 0) ? 1 : 0;
> +  return (ioctl(olsr_cnf->ioctl_s, SIOCG80211, &ireq) >= 0) ? 1 : 0;
>  #else
>    return 0;
>  #endif
>
> --
> Olsr-dev mailing list
> (spam-protected)
> http://lists.olsr.org/mailman/listinfo/olsr-dev
>


-- 
--------------------------------------------------------------------------------------------------------------
|  Gianni Costanzi ((spam-protected))
|       (http://utenti.lycos.it/giannicostanzi/)
|
|  Gentoo Documentation Project (GDP) Member - Italian Translator
|       (http://www.gentoo.org/proj/en/gdp/)
|
|  Free Software Foundation Member #3844 (www.fsf.org)
|       "Free Software is a matter of Liberty not price"
|
|  Sun Valley in Rock Staff Member (www.sunvalleyinrock.net/forum)
--------------------------------------------------------------------------------------------------------------




More information about the Olsr-dev mailing list