Re: RFC: inconsistencies/conflicts in <winsock.h>/<winsock2.h>

Keith Marshall via MinGW-dvlpr <[email protected]> Mon, 21 Aug 2017 12:54:22 +0100
Newsgroups gmane.comp.gnu.mingw.devel
Organization MinGW Project
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------080102000809070901060708
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 08/08/17 21:57, Keith Marshall via MinGW-dvlpr wrote:
> 3) The definitions of the FD_SET macro differ between the two headers;
>    this appears to be intentional, in spite of the <winsock.h> version
>    being utterly broken.  I don't know what Microsoft do, in *their*
>    <winsock.h>, but similar breakage does appear to be perpetuated in
>    other open source implementations; should we fix it, or should we
>    continue to mimic the broken behaviour perpetuated by others?
> 
> 4) Although the same in both cases, the FD_CLR macro is detrimentally
>    affected by the broken FD_SET in <winsock.h>; it's actually not
>    robust in either case, because it doesn't account for any possible
>    duplication of socket descriptors in the managed descriptor set;
>    should we seek a more robust formulation?

I've now created an autotest module which demonstrates these two issues:
https://sourceforge.net/p/mingw/mingw-org-wsl/ci/a5f7717aa34744b4bb18bf287d9a9920de0f4c30/

As may be seen, from the attached testsuite output, issue (3) is 
apparent in the <winsock.h>, but not in the <winsock2.h> implementation, 
of FD_SET, (although the latter implementation is an utterly ghastly 
mess).  Issue (4) remains (identically) in both implementations, in the 
particular case of an fd_set which may be malformed, (perhaps as a 
result of using FD_SET to add a duplicate fd, in a translation unit 
which includes <winsock.h> rather than <winsock2.h>).

Unless anyone can offer a convincing argument, within the next seven 
days, as to why we should faithfully reproduce other projects' bugs, I 
propose to correct both of these issues.

- -- 
Regards,
Keith.

Public key available from keys.gnupg.net
Key fingerprint: C19E C018 1547 DE50 E1D4 8F53 C0AD 36C6 347E 5A3F
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.20 (GNU/Linux)

iQIcBAEBAgAGBQJZmsnuAAoJEMCtNsY0flo/Bw4QAL29MSNP4gCKVMKHAKF6izRR
nQFZwNVGlj1Qcp/bWNZYNgx7PwL6o9fXuukjI5P8CDDkQR4pwf5FzMKyfFz/YeP3
UHAOdMKXpOAYM2gro2viO4wWIKoElqFO2iXiANjMnEeoXBct2eWpycJW+1C86is4
UzIIE2G2CDLL0rE6oo+L3n/XBFAXOLKq8qcjPYqH8dG4q8MV3NLdinRwykxIQyAg
BmqHdR3VNTXimyo170/BsslEmvMd9QwBMUMxj3q/pFmngoWtyz8zh9GIO2rUoD/T
rJ4R2Iiy59fMLmdWDixPKahhx3sJw1gLZk76XLkCqq+L1RYIL3rsqJjyNVwuANs6
UIy8XbU0dNgYc01IOEbnPugzVqU2YBy7KeJAv89lLvHW9wv3c1obIGM2MY7KY4wF
CS6OL+hHYxt/MYtlPXNw4HvxyOKj5VSMTapiBXb8D3BxHAMMkQ1H8PGsB11F2qFO
bWHmcyyFXdKd9VUTqFfbww1ZPrDM5hm78a1VRp05V98SETThHgxucqPbLu2jgSVA
3Qk/D7hQm8/UnnyThd7FMpnMbSZ6CAgzPH3hagbCNr0KJT14aN8Jvn+6N1pCpM/3
5HwCb2VLbs+xV3q96D2vKmH3VZa0Ql+roX5yuH93HlWj7btc6Mg/0HLGSJmKDqJH
JeE/gHxCvtJlKDScTp/p
=pcO7
-----END PGP SIGNATURE-----

--------------080102000809070901060708
Content-Type: text/plain; charset=UTF-8;
 name="testsuite.out"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="testsuite.out"

JCBtYWtlIC1DIHczMmFwaSBjaGVjayBURVNUU1VJVEVGTEFHUz0nLWsgZmRfc2V0JwptYWtl
OiBFbnRlcmluZyBkaXJlY3RvcnkgYC9ob21lL2tlaXRoL3NyYy9taW5ndy9taW5ndy13c2wt
b3V0Z29pbmcvYnVpbGQvdzMyYXBpJwptYWtlIC1DIHRlc3RzIGNoZWNrLXJlY3Vyc2l2ZQpt
YWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC9ob21lL2tlaXRoL3NyYy9taW5ndy9taW5n
dy13c2wtb3V0Z29pbmcvYnVpbGQvdzMyYXBpL3Rlc3RzJwovYmluL3NoIHRlc3RzdWl0ZSAt
ayBmZF9zZXQKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIE1p
bkdXIFdpbjMyIEFQSSA1LjAuMiB0ZXN0IHN1aXRlLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gIyMKCldpbmRvd3MgU29ja2V0cyB2MS4xIGZkX3NldCBtYWNy
byBjaGVja3MuCgo0Njc6IEZEX1pFUk8gcmVtb3ZlcyBhbGwgZGVzY3JpcHRvcnMgICAgICAg
ICAgICAgICAgIG9rCjQ2ODogRkRfU0VUIGFkZHMgb25lIHVuaXF1ZSBkZXNjcmlwdG9yICAg
ICAgICAgICAgICAgb2sKNDY5OiBGRF9TRVQgZG9lcyBub3QgYWRkIGR1cGxpY2F0ZSBkZXNj
cmlwdG9ycyAgICAgICBGQUlMRUQgKHdpbnNvY2suYXQ6MTczKQo0NzA6IEZEX0NMUiByZW1v
dmVzIGEgdW5pcXVlbHkgbWF0Y2hlZCBkZXNjcmlwdG9yICAgIG9rCjQ3MTogRkRfQ0xSIHJl
bW92ZXMgYWxsIG1hdGNoaW5nIGRlc2NyaXB0b3JzICAgICAgICAgRkFJTEVEICh3aW5zb2Nr
LmF0OjE3MykKNDcyOiBGRF9JU1NFVCBkb2VzIG5vdCBkZXRlY3QgZXhjbHVkZWQgZGVzY3Jp
cHRvciAgICBvawo0NzM6IEZEX0lTU0VUIGRvZXMgZGV0ZWN0IGluY2x1ZGVkIGRlc2NyaXB0
b3IgICAgICAgIG9rCgpXaW5kb3dzIFNvY2tldHMgdjIgZmRfc2V0IG1hY3JvIGNoZWNrcy4K
CjQ3NDogRkRfWkVSTyByZW1vdmVzIGFsbCBkZXNjcmlwdG9ycyAgICAgICAgICAgICAgICAg
b2sKNDc1OiBGRF9TRVQgYWRkcyBvbmUgdW5pcXVlIGRlc2NyaXB0b3IgICAgICAgICAgICAg
ICBvawo0NzY6IEZEX1NFVCBkb2VzIG5vdCBhZGQgZHVwbGljYXRlIGRlc2NyaXB0b3JzICAg
ICAgIG9rCjQ3NzogRkRfQ0xSIHJlbW92ZXMgYSB1bmlxdWVseSBtYXRjaGVkIGRlc2NyaXB0
b3IgICAgb2sKNDc4OiBGRF9DTFIgcmVtb3ZlcyBhbGwgbWF0Y2hpbmcgZGVzY3JpcHRvcnMg
ICAgICAgICBGQUlMRUQgKHdpbnNvY2suYXQ6MTc0KQo0Nzk6IEZEX0lTU0VUIGRvZXMgbm90
IGRldGVjdCBleGNsdWRlZCBkZXNjcmlwdG9yICAgIG9rCjQ4MDogRkRfSVNTRVQgZG9lcyBk
ZXRlY3QgaW5jbHVkZWQgZGVzY3JpcHRvciAgICAgICAgb2sKCiMjIC0tLS0tLS0tLS0tLS0g
IyMKIyMgVGVzdCByZXN1bHRzLiAjIwojIyAtLS0tLS0tLS0tLS0tICMjCgojIyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAjIwojIyB0ZXN0c3VpdGUubG9nIHdhcyBjcmVhdGVkLiAj
IwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwoKUGxlYXNlIHNlbmQgYHRlc3Rz
L3Rlc3RzdWl0ZS5sb2cnIGFuZCBhbGwgaW5mb3JtYXRpb24geW91IHRoaW5rIG1pZ2h0IGhl
bHA6CgogICBUbzogPGh0dHA6Ly9taW5ndy5vcmcvUmVwb3J0aW5nX0J1Z3M+CiAgIFN1Ympl
Y3Q6IFtNaW5HVyBXaW4zMiBBUEkgNS4wLjJdIHRlc3RzdWl0ZTogNDY5IDQ3MSA0NzggZmFp
bGVkCgpZb3UgbWF5IGludmVzdGlnYXRlIGFueSBwcm9ibGVtIGlmIHlvdSBmZWVsIGFibGUg
dG8gZG8gc28sIGluIHdoaWNoCmNhc2UgdGhlIHRlc3Qgc3VpdGUgcHJvdmlkZXMgYSBnb29k
IHN0YXJ0aW5nIHBvaW50LiAgSXRzIG91dHB1dCBtYXkKYmUgZm91bmQgYmVsb3cgYHRlc3Rz
L3Rlc3RzdWl0ZS5kaXInLgoKbWFrZVsxXTogKioqIFtjaGVjay1sb2NhbF0gRXJyb3IgMQpt
YWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSBgL2hvbWUva2VpdGgvc3JjL21pbmd3L21pbmd3
LXdzbC1vdXRnb2luZy9idWlsZC93MzJhcGkvdGVzdHMnCm1ha2U6ICoqKiBbY2hlY2stcmVj
dXJzaXZlXSBFcnJvciAyCm1ha2U6IExlYXZpbmcgZGlyZWN0b3J5IGAvaG9tZS9rZWl0aC9z
cmMvbWluZ3cvbWluZ3ctd3NsLW91dGdvaW5nL2J1aWxkL3czMmFwaScK
--------------080102000809070901060708
Content-Type: application/x-xz;
 name="testsuite.log.xz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="testsuite.log.xz"

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
AgAAAAAEWVo=
--------------080102000809070901060708
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
--------------080102000809070901060708
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
MinGW-dvlpr mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-dvlpr

--------------080102000809070901060708--