This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: 1.5.19-3 parent socket binding remains after closing when spawning child process

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.

Can't think of a witty .sigline today....

Unsubscribe info:
Problem reports:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]