X-Spam-Check-By: sourceware.org Date: Tue, 20 Dec 2005 14:38:21 -0700 (MST) From: Craig Davison To: cygwin AT cygwin DOT com Subject: Listening sockets not always closing? Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-193179858-1135114701=:21488" X-IsSubscribed: yes 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 --0-193179858-1135114701=:21488 Content-Type: TEXT/PLAIN; charset=US-ASCII Hello, I'm running cygwin 1.5.18 on a number of versions of Windows, and I may have found a problem closing sockets. I'm seeing this problem on Windows 2000 (no SP) and Windows 2000 SP1, but not on Windows 2000 SP2, SP3 or SP4, and Windows XP and XP SP2 are also unaffected. I created a small test program to illustrate this. Basically, in a loop, I create a SOCK_STREAM socket, call bind() and then listen(), check the output of netstat, and then close the socket. It works on several versions of Linux, and Windows >= 2000 SP 2, but bind fails with EADDRINUSE the second time through the loop on Windows <= 2000 SP1. I think this is a cygwin-specific problem because if I try the same thing with a native windows application using winsock, it works. (I can mail out this code if anyone wants) The code for my test program is attached. If I'm doing something stupid here, I apologize for wasting everyone's time. --0-193179858-1135114701=:21488 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="tst-close.c" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="tst-close.c" I2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4NCiNpbmNsdWRlIDxhcnBhL2luZXQu aD4NCiNpbmNsdWRlIDx1bmlzdGQuaD4NCiNpbmNsdWRlIDxzdGRpby5oPg0K I2luY2x1ZGUgPHN0ZGxpYi5oPg0KDQojZGVmaW5lIFBPUlQgMTIzNDUNCg0K dm9pZCBuZXRzdGF0KCkNCnsNCiAgY2hhciBuZXRzdGF0X2NtZFsxMDBdOw0K ICBzcHJpbnRmIChuZXRzdGF0X2NtZCwgIm5ldHN0YXQgLWFuIC1wIHRjcCB8 IC9iaW4vZ3JlcCAlZCIsIFBPUlQpOw0KICBzeXN0ZW0gKG5ldHN0YXRfY21k KTsNCn0NCg0KaW50IG1haW4oKQ0Kew0KICBpbnQgaTsNCiAgZm9yIChpID0g MDsgaSA8IDEwOyBpKyspIHsNCiAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc2Fk ZHI7DQogICAgaW50IHM7DQogICAgc2FkZHIuc2luX2ZhbWlseSA9IEFGX0lO RVQ7DQogICAgc2FkZHIuc2luX2FkZHIuc19hZGRyID0gMDsNCiAgICBzYWRk ci5zaW5fcG9ydCA9IGh0b25zKFBPUlQpOw0KDQogICAgcyA9IHNvY2tldCAo UEZfSU5FVCwgU09DS19TVFJFQU0sIDApOw0KICAgIGlmIChzID09IC0xKSB7 DQogICAgICBwZXJyb3IgKCJzb2NrZXQiKTsNCiAgICAgIGV4aXQgKDEpOw0K ICAgIH0NCiAgICBpZiAoYmluZCAocywgKHN0cnVjdCBzb2NrYWRkciAqKSZz YWRkciwgc2l6ZW9mKHNhZGRyKSkgPT0gLTEpIHsNCiAgICAgIHBlcnJvciAo ImJpbmQiKTsNCiAgICAgIGV4aXQgKDEpOw0KICAgIH0NCiAgICBpZiAobGlz dGVuIChzLCAxMDApID09IC0xKSB7DQogICAgICBwZXJyb3IgKCJsaXN0ZW4i KTsNCiAgICAgIGV4aXQgKDEpOw0KICAgIH0NCiAgICBwcmludGYgKCJDYWxs ZWQgbGlzdGVuXG4iKTsNCiAgICBzbGVlcCAoMSk7DQogICAgbmV0c3RhdCgp Ow0KICAgIGlmIChjbG9zZSAocykgPT0gLTEpIHsNCiAgICAgIHBlcnJvciAo ImNsb3NlIik7DQogICAgICBleGl0ICgxKTsNCiAgICB9DQogICAgcHJpbnRm ICgiQ2FsbGVkIGNsb3NlXG4iKTsNCiAgfQ0KDQogIHJldHVybiAwOw0KfQ0K DQo= --0-193179858-1135114701=:21488 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-193179858-1135114701=:21488--