From owner-freebsd-amd64@FreeBSD.ORG Sat Jan 3 23:14:15 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6F93716A4CE for ; Sat, 3 Jan 2004 23:14:15 -0800 (PST) Received: from bigtex.jrv.org (rrcs-sw-24-73-246-106.biz.rr.com [24.73.246.106]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4C3FB43D6A for ; Sat, 3 Jan 2004 23:14:14 -0800 (PST) (envelope-from james@bigtex.jrv.org) Received: from bigtex.jrv.org (localhost [127.0.0.1]) by bigtex.jrv.org (8.12.1/8.12.1) with ESMTP id i047EDo8019474 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Sun, 4 Jan 2004 01:14:13 -0600 (CST) Received: (from james@localhost) by bigtex.jrv.org (8.12.1/8.12.1/Submit) id i047EDbt019471; Sun, 4 Jan 2004 01:14:13 -0600 (CST) Date: Sun, 4 Jan 2004 01:14:13 -0600 (CST) Message-Id: <200401040714.i047EDbt019471@bigtex.jrv.org> From: James Van Artsdalen To: freebsd-amd64@freebsd.org Subject: Re: SMBFS? X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jan 2004 07:14:15 -0000 > Is anyone trying to use SMBFS on x86_64? I'm getting an error I > don't get on the i386 boxes: > smbfs: can't get server address: nberr = no interface to broadcast on and no NBNS server specified > I'm beginning to wonder if there might be a bug instead of just an > incorrect config file. In nb_enum_if() in /usr/src/contrib/smbfs/lib/smb/nb_net.c, this code traverses all of the net interfaces looking for broadcast addresses. Of interest ifc.ifc_len is 524, but sizeof (struct ifreq) is 32? Shouldn't the len be an integer multiple of the size of the struct? I can find no documentation of these ioctl's. I looked at the bytes returned by SIOCGIFCONF an it's clearly not what the libsmbfs code expects, but I don't know what SIOCGIFCONF is really supposed to return & the structure boundaries in the buffer aren't obvious. if (ioctl(s, SIOCGIFCONF, &ifc) != 0) { error = errno; goto bad; } ifrqp = ifc.ifc_req; ifcnt = ifc.ifc_len / sizeof(struct ifreq); error = 0; for (i = 0; i < ifcnt; i++, ifrqp++) { if (ioctl(s, SIOCGIFFLAGS, ifrqp) != 0) continue;