Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!decwrl!purdue!mentor.cc.purdue.edu!mace.cc.purdue.edu!abe From: abe@mace.cc.purdue.edu (Vic Abell) Newsgroups: comp.protocols.tcp-ip Subject: Re: Odd FTP Problem Summary: Another cause of data connection failure Message-ID: <1861@mace.cc.purdue.edu> Date: 27 Feb 89 15:41:21 GMT References: <890227123252.420278@DOCKMASTER.ARPA> Organization: Purdue University Lines: 11 There is another BSD ftpd problem in the very latest post-worm release that can cause data connection failure. The connection failure occurs when there are two, incoming ftpd calls from the same remote peer. If the two, receiving ftpd processes both try to open a data connection at the same time, one can fail with an EADDRINUSE error. We have fixed this problem locally by adding a retry loop in ftpd.c's getdatasock() function. The released ftpd lacks this loop. It also may be reporting the cause of data connection failures improperly when they result from an error in the bind() call within getdatasock(). There are several function calls between the bind() and the reply() call that can change the value of errno.