delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/07/04/05:59:37

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
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 <anurag AT proximity DOT com DOT au>
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

--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--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019