delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2009/09/16/16:16:35

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=BAYES_00,SARE_MSGID_LONG40,SPF_PASS
X-Spam-Check-By: sourceware.org
MIME-Version: 1.0
Date: Wed, 16 Sep 2009 22:16:21 +0200
Message-ID: <cef27f050909161316x1f38676bie677bbdeae0bf0c@mail.gmail.com>
Subject: Opening a socket connection in a fork ?
From: Gu1ll4um3r0m41n <aeroxteam AT gmail DOT com>
To: cygwin AT cygwin DOT com
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/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

--00504502d2d6868ede0473b7922d
Content-Type: text/plain; charset=ISO-8859-1

Hello,
I'm trying to run a program on cygwin that forks, opens a socket
connection and sends the status of the connection to the parent
process using pipes. The parent process then sends data through the
opened socket.
The program works well on linux but on cygwin, i cannot use recv on a
socket opened in a fork. The recv function always return -1, errno 22
("EINVAL").
The weird thing is that the socket stays open and send still works...

I attached a short example.
I don't know if this is a bug or a limitation due to the fork()
implementation in cygwin... I searched on google but couldn't find
anything really useful.


Gu1

--00504502d2d6868ede0473b7922d
Content-Type: application/octet-stream; name="test.c"
Content-Disposition: attachment; filename="test.c"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fzoifpo70

I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KI2luY2x1
ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDxz
eXMvdHlwZXMuaD4KI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KI2luY2x1ZGUg
PG5ldGluZXQvaW4uaD4KI2luY2x1ZGUgPGFycGEvaW5ldC5oPgojaW5jbHVk
ZSA8bmV0ZGIuaD4KI2luY2x1ZGUgPGVycm5vLmg+CgpzdHJ1Y3Qgc2RhdGEg
ewoJaW50IGNoaWxkX3JlYWQ7CglpbnQgY2hpbGRfd3JpdGU7CglpbnQgc29j
azsKfTsKCnZvaWQgb3BlbkNvbm5lY3Rpb24oc3RydWN0IHNkYXRhICpkYXRh
KSB7CglzdHJ1Y3Qgc29ja2FkZHJfaW4gKmFkZHJlc3M7CglhZGRyZXNzID0g
bWFsbG9jKHNpemVvZigqZGF0YSkpOwoJbWVtc2V0KGFkZHJlc3MsIDAsIHNp
emVvZigqZGF0YSkpOwoJY2hhciByZXN1bHRbMl07CgkKCWFkZHJlc3MtPnNp
bl9hZGRyLnNfYWRkciA9IGluZXRfYWRkcigiNzQuMTI1LjQ1LjEwMCIpOyAv
LyBnb29nbGUgaXAgYWRkcmVzcwoJYWRkcmVzcy0+c2luX3BvcnQgPSBodG9u
cyg4MCk7CglhZGRyZXNzLT5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKCQoJaWYg
KGNvbm5lY3QoZGF0YS0+c29jaywgKHN0cnVjdCBzb2NrYWRkciopYWRkcmVz
cywgc2l6ZW9mKCphZGRyZXNzKSkgPT0gMCkgewoJCXJlc3VsdFswXSA9ICcw
JzsKCX0gZWxzZSB7CgkJcmVzdWx0WzBdID0gJzMnOwoJfQoJd3JpdGUoZGF0
YS0+Y2hpbGRfd3JpdGUsIHJlc3VsdCwgMik7Cn0KCnZvaWQgd2FpdFJlc3Vs
dChzdHJ1Y3Qgc2RhdGEgKmRhdGEpIHsKCWZkX3NldCByZWFkX2ZkczsKCXN0
cnVjdCB0aW1ldmFsIHR2X3RpbWVvdXQ7CglpbnQgbWF4X2ZkLCByZWFkeTsK
CWNoYXIgYnVmWzIwXTsKCWNoYXIgaHR0cHJlc3VsdFs0MDk2XTsKCQoJd2hp
bGUoMSkgewoJCUZEX1pFUk8oJnJlYWRfZmRzKTsKCQlGRF9TRVQoZGF0YS0+
Y2hpbGRfcmVhZCwgJnJlYWRfZmRzKTsKCQl0dl90aW1lb3V0LnR2X3NlYyA9
IDI7CgkJdHZfdGltZW91dC50dl91c2VjID0gMDsKCQkKCQlyZWFkeSA9IHNl
bGVjdCAoZGF0YS0+Y2hpbGRfcmVhZCsxLCAmcmVhZF9mZHMsIE5VTEwsIE5V
TEwsICZ0dl90aW1lb3V0KTsKCQkKCQlpZihyZWFkeSA+IDApIHsKCQkJcmVh
ZChkYXRhLT5jaGlsZF9yZWFkLCBidWYsIDEwKTsKCQkJYnJlYWs7CgkJfSBl
bHNlIHsKCQkJcHJpbnRmKCJubyBkYXRhIGluIDJzZWNzXHJcbiIpOwoJCX0K
CX0KCWlmKGJ1ZlswXSA9PSAnMCcpIHsKCQlwcmludGYoImNvbm5lY3Rpb24g
b2sgIVxyXG4iKTsKCQlzZW5kKGRhdGEtPnNvY2ssICJHRVQgLyBIVFRQLzEu
MVxyXG5Ib3N0OiB3d3cuZ29vZ2xlLmNvbVxyXG5cclxuIiwgc3RybGVuKCJH
RVQgLyBIVFRQLzEuMVxyXG5Ib3N0OiB3d3cuZ29vZ2xlLmNvbVxyXG5cclxu
IiksIDApOwoJCWludCBjb2RlciA9IHJlY3YoZGF0YS0+c29jaywgaHR0cHJl
c3VsdCwgNDA5NiwgMCk7CgkJcHJpbnRmKCIlaSA+ICVpXHJcbiIsIGNvZGVy
LCBlcnJubyk7Cgl9IGVsc2UgewoJCXByaW50ZigiY29ubmVjdGlvbiBjb3Vs
ZCBub3QgYmUgZXRhYmxpc2hlZFxyXG4iKTsKCX0KfQoKaW50IGluaXQoc3Ry
dWN0IHNkYXRhICpkYXRhKSB7CglpbnQgY2hpbGRfcGlwZVsyXTsKCWlmIChw
aXBlIChjaGlsZF9waXBlKSA8IDApIHsKCQlwcmludGYoInVuYWJsZSB0byBj
cmVhdGUgcGlwZSIpOwoJCXJldHVybiAwOwoJfQoJZGF0YS0+Y2hpbGRfcmVh
ZCA9IGNoaWxkX3BpcGVbMF07CglkYXRhLT5jaGlsZF93cml0ZSA9IGNoaWxk
X3BpcGVbMV07CgkKCWRhdGEtPnNvY2sgPSBzb2NrZXQoQUZfSU5FVCwgU09D
S19TVFJFQU0sIDApOwoJCglyZXR1cm4gMTsKfQoKaW50IG1haW4oKSB7Cglz
dHJ1Y3Qgc2RhdGEgKmRhdGE7CglwaWRfdCBwaWQ7CglkYXRhID0gbWFsbG9j
KHNpemVvZigqZGF0YSkpOwoJCglpZihpbml0KGRhdGEpIDwgMSkgewoJCXJl
dHVybiAwOwoJfQoJCgkvKioqKiovCglzd2l0Y2gocGlkID0gZm9yaygpKSB7
CgkJLyogZm9yayBmYWlsZWQgKi8KCQljYXNlIC0xOgoJCQlwcmludGYoImZv
cmsgZmFpbGVkIik7CgkJCXJldHVybjsKCQkvKiBjaGlsZCBwcm9jZXNzICov
CgkJY2FzZSAwOgoJCQlzZXR1aWQoZ2V0dWlkKCkpOwoJCQljbG9zZShkYXRh
LT5jaGlsZF9yZWFkKTsKCQkJb3BlbkNvbm5lY3Rpb24oZGF0YSk7CgkJCV9l
eGl0KEVYSVRfU1VDQ0VTUyk7Cgl9CgkKCXdhaXRSZXN1bHQoZGF0YSk7IC8v
IHdvbid0IHdvcms6IG9wZW5Db25uZWN0aW9uIGlzIGluc2lkZSBhIGZvcmsK
CQoJY2xvc2UoZGF0YS0+Y2hpbGRfcmVhZCk7CgljbG9zZShkYXRhLT5jaGls
ZF93cml0ZSk7CgljbG9zZShkYXRhLT5zb2NrKTsKCQoJLyoqKioqLwoJCglp
Zihpbml0KGRhdGEpIDwgMSkgewoJCXJldHVybiAwOwoJfQoJCglvcGVuQ29u
bmVjdGlvbihkYXRhKTsKCXdhaXRSZXN1bHQoZGF0YSk7IC8vIHdpbGwgd29y
awoJCgljbG9zZShkYXRhLT5jaGlsZF9yZWFkKTsKCWNsb3NlKGRhdGEtPmNo
aWxkX3dyaXRlKTsKCWNsb3NlKGRhdGEtPnNvY2spOwoJCglyZXR1cm4gMDsK
fQo=


--00504502d2d6868ede0473b7922d
Content-Type: text/plain; charset=us-ascii

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
--00504502d2d6868ede0473b7922d--

- Raw text -


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