From owner-freebsd-current@FreeBSD.ORG Thu Aug 25 13:49:28 2005 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7AA9316A42C for ; Thu, 25 Aug 2005 13:49:28 +0000 (GMT) (envelope-from cejkar@fit.vutbr.cz) Received: from kazi.fit.vutbr.cz (kazi.fit.vutbr.cz [147.229.8.12]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7FA2143D45 for ; Thu, 25 Aug 2005 13:49:26 +0000 (GMT) (envelope-from cejkar@fit.vutbr.cz) Received: from kazi.fit.vutbr.cz (localhost [127.0.0.1]) by kazi.fit.vutbr.cz (envelope-from cejkar@fit.vutbr.cz) (8.13.4/8.13.4) with ESMTP id j7PDnOM5088439 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 25 Aug 2005 15:49:24 +0200 (CEST) Received: (from cejkar@localhost) by kazi.fit.vutbr.cz (8.13.4/8.13.1/Submit) id j7PDnOO1088438 for freebsd-current@freebsd.org; Thu, 25 Aug 2005 15:49:24 +0200 (CEST) (envelope-from cejkar@fit.vutbr.cz) X-Authentication-Warning: kazi.fit.vutbr.cz: cejkar set sender to cejkar@fit.vutbr.cz using -f Date: Thu, 25 Aug 2005 15:49:24 +0200 From: Rudolf Cejka To: freebsd-current@freebsd.org Message-ID: <20050825134924.GA87803@fit.vutbr.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2.1i X-Scanned-By: MIMEDefang 2.49 on 147.229.8.12 Subject: Unable to connect to wireless 802.11 AP with hidden SSID X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Aug 2005 13:49:28 -0000 Hello, after an upgrade from 5.x to 7.x (Aug 22), I'm unable to connect to wireless 802.11 access point, which hides its own SSID, using dhclient (manual settings do work, however it is not very good workaround...). My wireless card is ndis0: mem 0x88000000-0x88001fff irq 9 at device 0.0 on cardbus0 and I use commands $ ifconfig ndis0 up $ ifconfig ndis0 authmode shared wepmode on weptxkey 1 wepkey 1:XXX \ ssid "XXX" for ndis0 interface setup. However, when I run $ dhclient ndis0 ssid is lost. It seems that "empty" ssid received from AP is forced to be a new ssid, when ifconfig ndis0 up is called by dhclient on interface already set up. I do not know, what should be fixed - ndis layer, 802.11 layer, dhclient, or ifconfig, however the following patch to ifconfig.c helps to me - if SIOCSIFFLAGS would not change any flag (something is changed again, what has been changed in the past), ioctl() is simply skipped. I'm sure, that connecting to AP with hidden SSID worked in the past. --- sbin/ifconfig/ifconfig.c.orig Thu Aug 25 15:13:54 2005 +++ sbin/ifconfig/ifconfig.c Thu Aug 25 15:15:03 2005 @@ -82,6 +82,7 @@ char name[IFNAMSIZ]; int flags; +int saveflags; int setaddr; int setipdst; int setmask; @@ -714,15 +715,18 @@ strncpy(my_ifr.ifr_name, name, sizeof (my_ifr.ifr_name)); flags = (my_ifr.ifr_flags & 0xffff) | (my_ifr.ifr_flagshigh << 16); + saveflags = flags; if (value < 0) { value = -value; flags &= ~value; } else flags |= value; - my_ifr.ifr_flags = flags & 0xffff; - my_ifr.ifr_flagshigh = flags >> 16; - if (ioctl(s, SIOCSIFFLAGS, (caddr_t)&my_ifr) < 0) - Perror(vname); + if (flags != saveflags) { + my_ifr.ifr_flags = flags & 0xffff; + my_ifr.ifr_flagshigh = flags >> 16; + if (ioctl(s, SIOCSIFFLAGS, (caddr_t)&my_ifr) < 0) + Perror(vname); + } } void -- Rudolf Cejka http://www.fit.vutbr.cz/~cejkar Brno University of Technology, Faculty of Information Technology Bozetechova 2, 612 66 Brno, Czech Republic