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 Date: Thu, 4 Jul 2002 19:59:16 +1000 From: Anurag Sharma To: cygwin AT cygwin DOT com Cc: brian AT proximity DOT com DOT au Subject: Select waits for NonBlocking fd Message-Id: <20020704195916.2944b425.anurag@proximity.com.au> In-Reply-To: <20020704114629.N21857@cygbert.vinschen.de> References: <20020703222741 DOT CB6551C355 AT redhat DOT com> <31CB870AD5AA384BB5419025DD9F7A841042F0 AT dailymail DOT cfs DOT ac DOT uk> <20020704114629 DOT N21857 AT cygbert DOT vinschen DOT de> Organization: Proximity Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart_Thu__4_Jul_2002_19:59:16_+1000_085ecc20" --Multipart_Thu__4_Jul_2002_19:59:16_+1000_085ecc20 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hi All, We have come across a peculiar problem while setting up sockets for connection. 1) We make the socket non-blocking 2) give it an invalid port to connect to on the localhost. 3) errno is correctly set to EINPROGRESS 4) Doing a select on the socket waits indefinetly!! Attached is code that displays this behaviour. This code works as expected on linux. Also if we check for socket error using getsockopt before we do a select, no error is returned. On linux it correctly returns 'Connection refused'. Any Ideas?? Anurag --Multipart_Thu__4_Jul_2002_19:59:16_+1000_085ecc20 Content-Type: application/octet-stream; name="connect.C" Content-Disposition: attachment; filename="connect.C" Content-Transfer-Encoding: base64 I2luY2x1ZGUgPG9zdHJlYW0uaD4KI2luY2x1ZGUgPGVycm5vLmg+CiNpbmNsdWRlIDxzdGRsaWIu aD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8ZmNudGwuaD4KI2luY2x1ZGUgPHN5cy90 eXBlcy5oPgojaW5jbHVkZSA8c3lzL3NvY2tldC5oPgojaW5jbHVkZSA8c3lzL2lvY3RsLmg+CiNp bmNsdWRlIDxuZXRpbmV0L2luLmg+Cgp2b2lkCm15X3BlcnJvcihjb25zdCBjaGFyKiBtc2cpCnsK ICAgIGNlcnIgPDwgbXNnIDw8ICI6ICIKCTw8IHN0cmVycm9yKGVycm5vKSA8PCAiICgiIDw8IGVy cm5vIDw8ICIpIiA8PCBlbmRsOwp9Cgp2b2lkCndhaXRTZWxlY3QoaW50IGZkKQp7CiAgICAKICAg IGZkX3NldCB3cmZkczsKICAgIEZEX1pFUk8oJndyZmRzKTsKICAgIEZEX1NFVChmZCwgJndyZmRz KTsKCiAgICBpbnQgciA9IDo6c2VsZWN0KGZkICsgMSwgTlVMTCwgJndyZmRzLCBOVUxMLCBOVUxM KTsKICAgIAogICAgY2VyciA8PCAic2VsZWN0ID0gIiA8PCByIDw8IGVuZGw7CiAgICBjZXJyIDw8 ICJmZF9pc3NldCA9ICIgPDwgKGludCkoRkRfSVNTRVQoZmQsICZ3cmZkcykpIDw8IGVuZGw7CiAg ICAKICAgIGlmIChyIDw9IDApIHsKCW15X3BlcnJvcigic2VsZWN0Iik7CglleGl0KDEpOwogICAg fQp9CgppbnQKbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQp7CiAgICBpbnQgZmQsIHI7CiAg ICAKICAgIGlmIChhcmdjIDwgMikgewoJY2VyciA8PCAiVXNhZ2U6IGNvbm5lY3QgPHBvcnQ+IFtu b25ibG9ja10iIDw8IGVuZGw7CglleGl0KDIpOwogICAgfQogICAgCiAgICBib29sIG5vbmJsb2Nr ID0gKGFyZ2MgPiAyKTsKICAgIGludCBwb3J0ID0gOjphdG9pKGFyZ3ZbMV0pOwoKICAgIHdoaWxl ICgxKSB7CgoJY2VyciA8PCAic2xlZXAuLi4iIDw8IGVuZGw7CglzbGVlcCgxKTsKCQoJY2VyciA8 PCAic3RhcnRpbmcgY29ubmVjdCIgPDwgZW5kbDsKCglmZCA9IDo6c29ja2V0KFBGX0lORVQsIFNP Q0tfU1RSRUFNLCAwKTsKCWlmIChmZCA9PSAtMSkgewoJICAgIG15X3BlcnJvcigic29ja2V0Iik7 CgkgICAgZXhpdCgxKTsKCX0KCgljZXJyIDw8ICJmZCA9ICIgPDwgZmQgPDwgZW5kbDsKCglpZiAo bm9uYmxvY2spIHsKCSAgICA6OmZjbnRsKGZkLCBGX1NFVEZMLCA6OmZjbnRsKGZkLCBGX0dFVEZM KSB8IE9fTk9OQkxPQ0spOwoJfQoKCXNvY2thZGRyX2luIHNpbjsKCXNpbi5zaW5fZmFtaWx5ID0g QUZfSU5FVDsKCXNpbi5zaW5fYWRkci5zX2FkZHIgPSBodG9ubChJTkFERFJfTE9PUEJBQ0spOwoJ c2luLnNpbl9wb3J0ID0gaHRvbnMocG9ydCk7Cgk6Om1lbXNldChzaW4uc2luX3plcm8sIDAsIHNp emVvZihzaW4uc2luX3plcm8pKTsKCglpZiAoOjpjb25uZWN0KGZkLCAoc29ja2FkZHIqKSZzaW4s IHNpemVvZihzaW4pKSAhPSAwKSB7CgkgICAgaWYgKGVycm5vICE9IEVJTlBST0dSRVNTKSB7CgkJ bXlfcGVycm9yKCJjb25uZWN0Iik7CgkJOjpjbG9zZShmZCk7CgkJY29udGludWU7CgkgICAgfQoK CSAgICBteV9wZXJyb3IoImNvbm5lY3QiKTsKCgkgICAgY2VyciA8PCAid2FpdGluZyBmb3IgY29u bmVjdC4uLiIgPDwgZW5kbDsKCSAgICAKCSAgICB3YWl0U2VsZWN0KGZkKTsKCgkgICAgY2VyciA8 PCAid2FpdGluZyBvdmVyIiA8PCBlbmRsOwoJICAgIAoJICAgIGludCBzb2NrRXJyb3IgPSAwOwoJ ICAgIHNvY2tsZW5fdCBzb2NrRXJyb3JMZW4gPSBzaXplb2Yoc29ja0Vycm9yKTsKCSAgICBpZiAo OjpnZXRzb2Nrb3B0KGZkLCBTT0xfU09DS0VULCBTT19FUlJPUiwKCQkmc29ja0Vycm9yLCAmc29j a0Vycm9yTGVuKSA9PSAtMSkgewoJCW15X3BlcnJvcigiZ2V0c29ja29wdCBTT19FUlJPUiIpOwoJ CWV4aXQoMSk7CgkgICAgfQoKCSAgICBpZiAoc29ja0Vycm9yICE9IDApIHsKCQljZXJyIDw8ICJj b25uZWN0OiAiIDw8IHN0cmVycm9yKHNvY2tFcnJvcikKCQkgICAgPDwgIiAoIiA8PCBzb2NrRXJy b3IgPDwgIikiIDw8IGVuZGw7CgoJCTo6Y2xvc2UoZmQpOwoJCWNvbnRpbnVlOwoJICAgIH0KCgkg ICAgY2VyciA8PCAiY29ubmVjdGVkIiA8PCBlbmRsOwoKCX0gZWxzZSB7CgkgICAgY2VyciA8PCAi Y29ubmVjdGVkIHN0cmFpZ2h0IGF3YXkiIDw8IGVuZGw7Cgl9CgoJOjpmY250bChmZCwgRl9TRVRG TCwgOjpmY250bChmZCwgRl9HRVRGTCkgJiB+T19OT05CTE9DSyk7CgoJd2hpbGUgKDEpIHsKCSAg ICBjaGFyIGJ1ZmZlclsyNTZdOwoJICAgIHIgPSA6OnJlYWQoZmQsIGJ1ZmZlciwgc2l6ZW9mKGJ1 ZmZlcikpOwoJICAgIAoJICAgIGNlcnIgPDwgInJlYWQgPSAiIDw8IHIgPDwgZW5kbDsKCQkvLyBi bG9ja2luZyByZWFkIGZyb20gc29ja2V0CgkgICAgCgkgICAgaWYgKHIgPD0gMCkKCQlicmVhazsK CX0KCgk6OmNsb3NlKGZkKTsKCSAgICAKCWlmIChyIDwgMCkKCSAgICBteV9wZXJyb3IoInJlYWQi KTsKCWVsc2UKCSAgICBjZXJyIDw8ICJFT0YiIDw8IGVuZGw7CgogICAgfQp9Cgo= --Multipart_Thu__4_Jul_2002_19:59:16_+1000_085ecc20 Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ --Multipart_Thu__4_Jul_2002_19:59:16_+1000_085ecc20--