X-Spam-Check-By: sourceware.org From: "Dave Korn" To: Subject: RE: 1.5.19-3 parent socket binding remains after closing when spawning child process Date: Fri, 20 Jan 2006 17:22:50 -0000 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit In-Reply-To: <20060120165308.59367.qmail@web30611.mail.mud.yahoo.com> Message-ID: Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Martin wrote: > Well, this is a strange one. > I open a socket in a parent process, bind it and > listen. > I set the socket to close-on-exec with the FD_CLOEXEC > flag. > A child process is spawned, which doesn't inherit the > socket. > I then close the server socket in the parent process. > For a laugh, I attempt to connect to the port > associated with the server socket. I would expect > this connection request to fail, since I just closed > the socket. It doesn't. > > The attached test case illustrates this. > Please let me know if I'm doing something wrong. I can't say why yet, but server_sock is still open in the child. Adding an explicit "close(server_sock)" just before the call to execlp in the child-side of the fork clause fixes it. Maybe FD_CLOEXEC isn't implemented or working properly on cygwin, I haven't looked further yet. cheers, DaveK -- Can't think of a witty .sigline today.... -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/