X-Spam-Check-By: sourceware.org Message-ID: <20060120165308.59367.qmail@web30611.mail.mud.yahoo.com> Date: Fri, 20 Jan 2006 11:53:08 -0500 (EST) From: Martin Subject: 1.5.19-3 parent socket binding remains after closing when spawning child process To: cygwin AT cygwin DOT com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-138723249-1137775988=:59061" Content-Transfer-Encoding: 8bit Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm 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 Note-from-DJ: This may be spam --0-138723249-1137775988=:59061 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Content-Id: Content-Disposition: inline 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. Thanks for your help. Martin __________________________________________________________ Find your next car at http://autos.yahoo.ca --0-138723249-1137775988=:59061 Content-Type: application/octet-stream; name="test1.cpp" Content-Transfer-Encoding: base64 Content-Description: 317282840-test1.cpp Content-Disposition: attachment; filename="test1.cpp" I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1 ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3lzL3NlbGVjdC5oPgojaW5jbHVk ZSA8c3lzL3NvY2tldC5oPgojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNpbmNs dWRlIDxzeXMvc3RhdC5oPgojaW5jbHVkZSA8ZmNudGwuaD4KI2luY2x1ZGUg PGVycm5vLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPG5ldGlu ZXQvaW4uaD4KCmludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCnsK ICBpbnQgc3RhdHVzOwogIGludCBzZXJ2ZXJfc29jazsKCiAgaWYgKGFyZ2M9 PTIpIHsKICAgIGlmIChzdHJjbXAoYXJndlsxXSwgImNoaWxkIik9PTApIHsK ICAgICAgcHJpbnRmKCJjaGlsZCBzdGFydGVkLlxuIik7CiAgICAgIGZvcihp bnQgaSA9IDA7IGkgPCBnZXRkdGFibGVzaXplKCk7IGkrKykgewoJaWYgKChz dGF0dXMgPSBmY250bChpLCBGX0dFVEZEKSk8MCkgY29udGludWU7Cglwcmlu dGYoImNoaWxkIGZkICVkIG9wZW5cbiIsIGkpOwogICAgICB9CiAgICAgIHNs ZWVwKDEwKTsKICAgICAgcHJpbnRmKCJjaGlsZCBlbmQuXG4iKTsKICAgICAg ZXhpdCgwKTsKICAgIH0KICB9CgogIC8qIFNlcnZlciBzZXR1cCAqLwogIHNv Y2thZGRyX2luIHNlcnZlcl9zaW47CiAgc2VydmVyX3Npbi5zaW5fZmFtaWx5 ID0gQUZfSU5FVDsKICBzZXJ2ZXJfc2luLnNpbl9hZGRyLnNfYWRkciA9IGh0 b25sKElOQUREUl9BTlkpOwogIHNlcnZlcl9zaW4uc2luX3BvcnQgPSBodG9u cyhzaG9ydCg4ODg4KSk7CiAgbWVtc2V0KHNlcnZlcl9zaW4uc2luX3plcm8s IDAsIHNpemVvZihzZXJ2ZXJfc2luLnNpbl96ZXJvKSk7CgogIC8qIFNlcnZl ciAqLwogIHNlcnZlcl9zb2NrID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RS RUFNLCAwKTsKICAKICBpZiAoKHN0YXR1cyA9IGZjbnRsKHNlcnZlcl9zb2Nr LCBGX0dFVEZEKSk8MCkgewogICAgcHJpbnRmKCJmY250bCBnZXQ6JXNcbiIs IHN0cmVycm9yKGVycm5vKSk7CiAgICBleGl0KDApOwogIH0KICBwcmludGYo ImZjbnRsIGdldCAlWFxuIiwgc3RhdHVzKTsKICBzdGF0dXMgfD0gRkRfQ0xP RVhFQzsKICBwcmludGYoImZjbnRsIHNldCAlWFxuIiwgc3RhdHVzKTsKICBp ZiAoZmNudGwoc2VydmVyX3NvY2ssIEZfU0VURkQsIHN0YXR1cyk9PS0xKSB7 CiAgICBwcmludGYoImZjbnRsIHNldCBjbG9zZS1leGVjOiVzXG4iLCBzdHJl cnJvcihlcnJubykpOwogICAgZXhpdCgwKTsKICB9CiAgIAogIHN0YXR1cyA9 IGJpbmQoc2VydmVyX3NvY2ssIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNlcnZl cl9zaW4sCgkJc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcikpOwogIAogIGlmIChz dGF0dXMgIT0gLTEpIHsKICAgIHN0YXR1cyA9IGxpc3RlbihzZXJ2ZXJfc29j aywgU09NQVhDT05OKTsKICAgIHByaW50Zigic2VydmVyIHBvcnQgbGlzdGVu aW5nLlxuIik7CiAgfQogIAogIHBpZF90IHBpZDsKICBpZiAoKHBpZCA9IGZv cmsoKSk9PTApIHsKICAvLyAgaWYgKDApIHsKCiAgICBwcmludGYoInNwYXdu aW5nIGNoaWxkLi4uXG4iKTsKICAgIHN0YXR1cyA9IGV4ZWNscCgidGVzdDEi LCJ0ZXN0MSIsImNoaWxkIiwgTlVMTCk7CiAgICBwZXJyb3IoInRlc3QxOiAi KTsKICAgIGV4aXQoMCk7CgogIH0gZWxzZSB7CgogICAgY2xvc2Uoc2VydmVy X3NvY2spOwogICAgcHJpbnRmKCJzZXJ2ZXIgc29ja2V0IGNsb3NlZC5cbiIp OwogICAgLyogbm93IHRyeSB0byBjb25uZWN0IHRvIGluaGVyaXRlZCBzb2Nr ZXQgKi8KICAgIGludCBzb2NrOwogICAgc29jayA9IHNvY2tldChBRl9JTkVU LCBTT0NLX1NUUkVBTSwgMCk7CgogICAgc29ja2FkZHJfaW4gc2luOwogICAg c2luLnNpbl9mYW1pbHkgPSBBRl9JTkVUOwogICAgc2luLnNpbl9hZGRyLnNf YWRkciA9IGh0b25sKElOQUREUl9MT09QQkFDSyk7CiAgICBzaW4uc2luX3Bv cnQgPSBodG9ucyhzaG9ydCg4ODg4KSk7CgogICAgaWYgKGNvbm5lY3Qoc29j aywgKHNvY2thZGRyKikmc2luLCBzaXplb2Yoc2luKSkgPT0gMCkgewogICAg ICBwcmludGYoInNlcnZlciBwcm9jZXNzIGNvbm5lY3RlZFxuIik7CiAgICB9 IGVsc2UgewogICAgICBwZXJyb3IoImNvbm5lY3Q6ICIpOwogICAgfQogICAg CiAgICBleGl0KDApOwogIH0KfQo= --0-138723249-1137775988=:59061 Content-Type: text/plain; charset=us-ascii -- 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/ --0-138723249-1137775988=:59061--