From owner-freebsd-ports Thu Jan 6 14:21:10 2000 Delivered-To: freebsd-ports@freebsd.org Received: from ee.elen.utah.edu (ee.elen.utah.edu [128.110.18.3]) by hub.freebsd.org (Postfix) with ESMTP id 3C1A014A0E for ; Thu, 6 Jan 2000 14:21:07 -0800 (PST) (envelope-from howard@ee.elen.utah.edu) Received: by ee.elen.utah.edu (Postfix, from userid 106) id E4C6E543E; Thu, 6 Jan 2000 15:21:04 -0700 (MST) To: freebsd-ports@FreeBSD.ORG Subject: socket problem with net/netatalk Message-Id: <20000106222104.E4C6E543E@ee.elen.utah.edu> Date: Thu, 6 Jan 2000 15:21:04 -0700 (MST) From: howard@ee.utah.edu (Walt Howard) Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org /usr/ports/net/netatalk-asun's atalkd program has a write-to-socket failure. The version without asun has the same problem. uname -a returns: FreeBSD route.elen.utah.edu 3.3-RELEASE FreeBSD 3.3-RELEASE #0: Fri Dec 31 18:27:59 MST 1999 root@route.elen.utah.edu:/usr/src/sys/compile/ROUTE i386 The kernel was compiled with "options NETATALK", and the box has 16 ethernet interfaces in PCI slots, all using the "de" driver. In order to free up IRQ numbers for all those ethernet interfaces, the kernel is configured without a mouse, serial ports, or parallel port. We previously used this same code on a box with five interfaces in ISA slots, using the "ed" driver and FreeBSD 2.2.7, and it ran fine. Program details: The code is in work/netatalk-1.4b2+asun2.1.3/etc/atalkd main.c opens a socket, assigning it to a global int if (( rtfd = socket( PF_ROUTE, SOCK_RAW, AF_APPLETALK )) < 0 ) { and then closes the input from it if ( shutdown( rtfd, 0 ) < 0 ) { Later, main calls looproute() from rtmp.c which calls route() from route.c which attempts to write to the socket: if (( rc = write( rtfd, &rtma, rtma.rtma_rtm.rtm_msglen )) != rtma.rtma_rtm.rtm_msglen ) { and this fails. rc is set to -1 and errno to 17 (EEXIST) which is not listed as a possible value for errno when write() fails. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message