From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#23615: 25.1.50; Which platforms can safely use getsockopt(,,SO_ERROR,,)? Date: Sat, 28 May 2016 15:57:00 +0300 Message-ID: <83twhixrvn.fsf@gnu.org> References: <8337p63y2a.fsf@gnu.org> <8080c018-3cc8-c97e-0654-dc98be95a7ef@cornell.edu> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1464440304 28658 80.91.229.3 (28 May 2016 12:58:24 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 28 May 2016 12:58:24 +0000 (UTC) Cc: 23615@debbugs.gnu.org To: Ken Brown Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat May 28 14:58:15 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1b6dok-0002Wf-5h for geb-bug-gnu-emacs@m.gmane.org; Sat, 28 May 2016 14:58:14 +0200 Original-Received: from localhost ([::1]:53221 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b6doj-0005c1-Ci for geb-bug-gnu-emacs@m.gmane.org; Sat, 28 May 2016 08:58:13 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59267) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b6doc-0005b3-P7 for bug-gnu-emacs@gnu.org; Sat, 28 May 2016 08:58:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b6doY-0005AX-Cr for bug-gnu-emacs@gnu.org; Sat, 28 May 2016 08:58:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:59175) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b6doY-0005AI-9w for bug-gnu-emacs@gnu.org; Sat, 28 May 2016 08:58:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1b6doY-0008Te-0v for bug-gnu-emacs@gnu.org; Sat, 28 May 2016 08:58:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 28 May 2016 12:58:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 23615-submit@debbugs.gnu.org id=B23615.146444022232302 (code B ref 23615); Sat, 28 May 2016 12:58:01 +0000 Original-Received: (at 23615) by debbugs.gnu.org; 28 May 2016 12:57:02 +0000 Original-Received: from localhost ([127.0.0.1]:43279 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b6dnZ-0008Op-Im for submit@debbugs.gnu.org; Sat, 28 May 2016 08:57:01 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:39959) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b6dnX-0008OX-8m for 23615@debbugs.gnu.org; Sat, 28 May 2016 08:57:00 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b6dnO-00052O-Rm for 23615@debbugs.gnu.org; Sat, 28 May 2016 08:56:53 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:38710) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b6dnO-00052I-O4; Sat, 28 May 2016 08:56:50 -0400 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2215 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1b6dnN-0002xu-S0; Sat, 28 May 2016 08:56:50 -0400 In-reply-to: <8080c018-3cc8-c97e-0654-dc98be95a7ef@cornell.edu> (message from Ken Brown on Wed, 25 May 2016 15:21:56 -0400) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:118805 Archived-At: --=-=-= Content-Type: text/plain > Cc: 23615@debbugs.gnu.org > From: Ken Brown > Date: Wed, 25 May 2016 15:21:56 -0400 > > On 5/25/2016 12:24 PM, Eli Zaretskii wrote: > > Perhaps you or someone could write a small test program, and then > > people here could run it various platforms and provide feedback. > > Test program attached. It simulates the situation of bug 23606 (before > the bug was fixed). Here's what happens on Cygwin: > > $ gcc -o socket_test socket_test.c > > $ ./socket_test.exe > Server listening on port 50176. > Attempting client connection...failure: Connection refused. With MinGW, I get this instead: D:\usr\eli\data>socket_test Server listening on port 2213. Attempting client connection...success. Do we have to have a failure in this case? Or is the above a valid outcome? Of course, I needed to hack the code quite a lot to get it compile on MS-Windows; the result is attached below. Maybe I broke the code while doing that? (I don't think calling 'connect' after 'listen' is supposed to work; on Windows it predictably fails with EINVAL, as documented on MSDN.) --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=socket_test.c Content-Transfer-Encoding: base64 I2lmZGVmIF9fTUlOR1czMl9fCiNkZWZpbmUgX1dJTjMyX1dJTk5UIDB4MDUwMQojaW5jbHVkZSA8 d2luc29jazIuaD4KI2luY2x1ZGUgPHdzMnRjcGlwLmg+CiNkZWZpbmUgc2xlZXAocykgU2xlZXAo cyoxMDAwKQojZGVmaW5lIFNPQ0tfREVTQyBTT0NLRVQKI2luY2x1ZGUgPGVycm5vLmg+CiNpZm5k ZWYgRUlTQ09OTgojIGRlZmluZSBFSVNDT05OIFdTQUVJU0NPTk4KI2VuZGlmCiNpZm5kZWYgRUlO UFJPR1JFU1MKIyBkZWZpbmUgRUlOUFJPR1JFU1MgV1NBRUlOUFJPR1JFU1MKI2VuZGlmCiNpZm5k ZWYgRVdPVUxEQkxPQ0sKIyBkZWZpbmUgRVdPVUxEQkxPQ0sgV1NBRVdPVUxEQkxPQ0sKI2VuZGlm CiNlbHNlCiNpbmNsdWRlIDxuZXRkYi5oPgojaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgojaW5jbHVk ZSA8c3lzL3NvY2tldC5oPgojZGVmaW5lIFNPQ0tfREVTQyBpbnQKI2VuZGlmCiNpbmNsdWRlIDxz dHJpbmcuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUg PHVuaXN0ZC5oPgojaW5jbHVkZSA8ZXJybm8uaD4KI2luY2x1ZGUgPGZjbnRsLmg+CgovKiBSZXR1 cm4gZmlsZSBkZXNjcmlwdG9yIG9yIC0xLiAgKi8KU09DS19ERVNDIG1ha2VfY29ubmVjdGlvbiAo aW50IHNlcnZlciwgaW50ICpwc2VydmljZSk7CgppbnQKc2V0X25ibG9jayAoU09DS19ERVNDIHMp CnsKI2lmZGVmIF9fTUlOR1czMl9fCiAgdW5zaWduZWQgbG9uZyBuYmxvY2sgPSAxOwoKICByZXR1 cm4gaW9jdGxzb2NrZXQgKHMsIEZJT05CSU8sICZuYmxvY2spOwojZWxzZQogIHJldHVybiBmY250 bCAocywgRl9TRVRGTCwgT19OT05CTE9DSykKI2VuZGlmCn0KCnZvaWQKY2xvc2Vfc29ja2V0IChT T0NLX0RFU0MgcykKewojaWZkZWYgX19NSU5HVzMyX18KICBjbG9zZXNvY2tldCAocyk7CiNlbHNl CiAgY2xvc2UgKHMpOwojZW5kaWYKfQoKI2lmZGVmIF9fTUlOR1czMl9fCmNoYXIgKgp3MzJfc3Ry ZXJyb3IgKGludCBlcnJvcl9ubykKewogIHN0YXRpYyBjaGFyIGJ1Zls1MDBdOwogIERXT1JEIHJl dDsKCiAgaWYgKGVycm9yX25vID09IDApCiAgICBlcnJvcl9ubyA9IEdldExhc3RFcnJvciAoKTsK CiAgcmV0ID0gRm9ybWF0TWVzc2FnZSAoRk9STUFUX01FU1NBR0VfRlJPTV9TWVNURU0gfAoJCSAg ICAgICBGT1JNQVRfTUVTU0FHRV9JR05PUkVfSU5TRVJUUywKCQkgICAgICAgTlVMTCwKCQkgICAg ICAgZXJyb3Jfbm8sCgkJICAgICAgIDAsIC8qIGNob29zZSBtb3N0IHN1aXRhYmxlIGxhbmd1YWdl ICovCgkJICAgICAgIGJ1Ziwgc2l6ZW9mIChidWYpLCBOVUxMKTsKCiAgd2hpbGUgKHJldCA+IDAg JiYgKGJ1ZltyZXQgLSAxXSA9PSAnXG4nIHx8CgkJICAgICBidWZbcmV0IC0gMV0gPT0gJ1xyJyAp KQogICAgICAtLXJldDsKICBidWZbcmV0XSA9ICdcMCc7CiAgaWYgKCFyZXQpCiAgICBzcHJpbnRm IChidWYsICJ3MzIgZXJyb3IgJXUiLCBlcnJvcl9ubyk7CgogIHJldHVybiBidWY7Cn0KI2VuZGlm CgppbnQKbWFpbih2b2lkKQp7CiAgU09DS19ERVNDIHNmZCwgY2ZkOwogIGludCAgeGVycm5vLCBz ZXJ2aWNlOwogIHNvY2tsZW5fdCB4bGVuID0gc2l6ZW9mICh4ZXJybm8pOwoKI2lmZGVmIF9fTUlO R1czMl9fCiAgV1NBREFUQSAgd2luc29ja0RhdGE7CiAgV1NBU3RhcnR1cCAoMHgxMDEsICZ3aW5z b2NrRGF0YSk7CiNlbmRpZgoKICBzZmQgPSBtYWtlX2Nvbm5lY3Rpb24gKDEsICZzZXJ2aWNlKTsK ICBpZiAoc2ZkID09IChTT0NLX0RFU0MpLTEpCiAgICB7CiAgICAgIGZwcmludGYgKHN0ZGVyciwg IkNhbid0IHN0YXJ0IHNlcnZlci5cbiIpOwogICAgICBleGl0KDEpOwogICAgfQogIHByaW50ZiAo IlNlcnZlciBsaXN0ZW5pbmcgb24gcG9ydCAlZC5cbiIsIHNlcnZpY2UpOwoKICBjZmQgPSBtYWtl X2Nvbm5lY3Rpb24gKDAsICZzZXJ2aWNlKTsKICBpZiAoY2ZkID09IChTT0NLX0RFU0MpLTEpCiAg ICB7CiAgICAgIGZwcmludGYgKHN0ZGVyciwgIkNhbid0IHN0YXJ0IGNsaWVudC5cbiIpOwogICAg ICBleGl0ICgxKTsKICAgIH0KICBmcHJpbnRmIChzdGRlcnIsICJBdHRlbXB0aW5nIGNsaWVudCBj b25uZWN0aW9uLi4uIik7CgogIC8qIEhlcmUgd2Ugc2hvdWxkIHVzZSAnc2VsZWN0JyB0byB3YWl0 IGZvciBjZmQgdG8gYmUgcmVhZHkgZm9yCiAgICAgd3JpdGluZy4gIFRvIHNpbXBsaWZ5IHRoZSB0 ZXN0LCBJ4oCZbSBqdXN0IGNhbGxpbmcgJ3NsZWVwJy4gICovCiAgc2xlZXAgKDIpOwoKICBpZiAo Z2V0c29ja29wdCAoY2ZkLCBTT0xfU09DS0VULCBTT19FUlJPUiwgKGNoYXIgKikmeGVycm5vLCAm eGxlbikpCiAgICB7CiAgICAgIHBlcnJvciAoImdldHNvY2tvcHQiKTsKICAgICAgZXhpdCAoMSk7 CiAgICB9CgogIGlmICh4ZXJybm8pCiAgICB7CiNpZmRlZiBfX01JTkdXMzJfXwogICAgICBwcmlu dGYgKCJmYWlsdXJlOiAlcy5cbiIsIHczMl9zdHJlcnJvciAoeGVycm5vKSk7CiNlbHNlCiAgICAg IHByaW50ZiAoImZhaWx1cmU6ICVzLlxuIiwgc3RlcnJvciAoeGVycm5vKSk7CiNlbmRpZgogICAg fQogIGVsc2UKICAgIHByaW50ZiAoInN1Y2Nlc3MuXG4iKTsKICBleGl0ICgwKTsKfQoKU09DS19E RVNDCm1ha2VfY29ubmVjdGlvbiAoaW50IHNlcnZlciwgaW50ICpwc2VydmljZSkKewogIHN0cnVj dCBhZGRyaW5mbyBoaW50cywgKnJlc3VsdCwgKnJwOwogIGludCBmYW1pbHksIG9wdHZhbCwgcmV0 OwogIFNPQ0tfREVTQyBzID0gKFNPQ0tfREVTQyktMTsKICBjb25zdCBjaGFyICpob3N0OwogIGNv bnN0IGNoYXIgKnBvcnRzdHJpbmc7CiAgY2hhciBwb3J0YnVmWzEyOF07CiAgc3RydWN0IHNvY2th ZGRyX2luIHNhOwogIHNvY2tsZW5fdCBsZW4gPSBzaXplb2YgKHNhKTsKICBpbnQgeGVycm5vOwoK ICBpZiAoc2VydmVyKQogICAgLyogQXNzaWduZWQgcG9ydCB3aWxsIGJlIHJldHVybmVkIGluIHBz ZXJ2aWNlLiAgKi8KICAgIHsKICAgICAgZmFtaWx5ID0gQUZfSU5FVDsKICAgICAgcG9ydHN0cmlu ZyA9ICIwIjsKICAgICAgaG9zdCA9ICIxMjcuMC4wLjEiOwogICAgfQogIGVsc2UKICAgIC8qIENs aWVudDsgZGVzaXJlZCBwb3J0IHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gcHNlcnZpY2UuICAqLwog ICAgewogICAgICBmYW1pbHkgPSBBRl9VTlNQRUM7CiAgICAgIHBvcnRzdHJpbmcgPSBwb3J0YnVm OwogICAgICBzcHJpbnRmIChwb3J0YnVmLCAiJWQiLCAqcHNlcnZpY2UpOwogICAgICBob3N0ID0g ImxvY2FsaG9zdCI7CiAgICB9CgogIG1lbXNldCAoJmhpbnRzLCAwLCBzaXplb2YgKHN0cnVjdCBh ZGRyaW5mbykpOwogIGhpbnRzLmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07CiAgaGludHMuYWlf ZmFtaWx5ID0gZmFtaWx5OwoKICBpZiAoZ2V0YWRkcmluZm8gKGhvc3QsIHBvcnRzdHJpbmcsICZo aW50cywgJnJlc3VsdCkpCiAgICByZXR1cm4gLTE7CgogIG9wdHZhbCA9IDE7CiAgZm9yIChycCA9 IHJlc3VsdDsgcnA7IHJwID0gcnAtPmFpX25leHQpCiAgICB7CiAgICAgIHMgPSBzb2NrZXQgKHJw LT5haV9mYW1pbHksIHJwLT5haV9zb2NrdHlwZSwgcnAtPmFpX3Byb3RvY29sKTsKICAgICAgaWYg KHMgPT0gKFNPQ0tfREVTQyktMSkKCWNvbnRpbnVlOwoKICAgICAgaWYgKHNlcnZlcikKCXsKCSAg aWYgKHNldHNvY2tvcHQgKHMsIFNPTF9TT0NLRVQsIFNPX1JFVVNFQUREUiwgKGNvbnN0IGNoYXIg Kikmb3B0dmFsLAoJCQkgIHNpemVvZihvcHR2YWwpKQoJICAgICAgPT0gLTEpCgkgICAgewoJICAg ICAgcGVycm9yICgic2V0c29ja29wdCIpOwoJICAgICAgY2xvc2Vfc29ja2V0IChzKTsKCSAgICAg IHJldHVybiAtMTsKCSAgICB9CgoJICBpZiAoYmluZCAocywgcnAtPmFpX2FkZHIsIHJwLT5haV9h ZGRybGVuKSkKCSAgICB7CgkgICAgICBwZXJyb3IgKCJiaW5kIik7CgkgICAgICBjbG9zZV9zb2Nr ZXQgKHMpOwoJICAgICAgcmV0dXJuIC0xOwoJICAgIH0KCgkgIGlmIChsaXN0ZW4gKHMsIDUpKQoJ ICAgIHsKCSAgICAgIHBlcnJvciAoImxpc3RlbiIpOwoJICAgICAgY2xvc2Vfc29ja2V0IChzKTsK CSAgICAgIHJldHVybiAtMTsKCSAgICB9CgoJICBpZiAoZ2V0c29ja25hbWUgKHMsIChzdHJ1Y3Qg c29ja2FkZHIgKikgJnNhLCAmbGVuKSkKCSAgICB7CgkgICAgICBwZXJyb3IgKCJnZXRzb2NrbmFt ZSIpOwoJICAgICAgY2xvc2Vfc29ja2V0IChzKTsKCSAgICAgIHJldHVybiAtMTsKCSAgICB9Cgkg ICpwc2VydmljZSA9IG50b2hzIChzYS5zaW5fcG9ydCk7CgkgIHJldCA9IDA7Cgl9CiAgICAgIGVs c2UKCS8qIE5vbmJsb2NraW5nIGNsaWVudC4gICovCgl7CgkgIGlmIChzZXRfbmJsb2NrIChzKSA9 PSAtMSkKCSAgICB7CgkgICAgICBjbG9zZV9zb2NrZXQgKHMpOwoJICAgICAgcyA9IC0xOwoJICAg ICAgY29udGludWU7CgkgICAgfQoJICByZXQgPSBjb25uZWN0IChzLCBycC0+YWlfYWRkciwgcnAt PmFpX2FkZHJsZW4pOwoJfQojaWZkZWYgX19NSU5HVzMyX18KICAgICAgeGVycm5vID0gV1NBR2V0 TGFzdEVycm9yICgpOwojZWxzZQogICAgICB4ZXJybm8gPSBlcnJubzsKI2VuZGlmCiAgICAgIGlm IChyZXQgPT0gMCB8fCB4ZXJybm8gPT0gRUlTQ09OTikKCWJyZWFrOwogICAgICBpZiAoIXNlcnZl ciAmJiAoeGVycm5vID09IEVJTlBST0dSRVNTIHx8IHhlcnJubyA9PSBFV09VTERCTE9DSykpCgli cmVhazsKICAgICAgY2xvc2Vfc29ja2V0IChzKTsKICAgICAgcyA9IC0xOwogICAgfQogIGZyZWVh ZGRyaW5mbyhyZXN1bHQpOwogIHJldHVybiBzOwp9Cg== --=-=-=--