This is the mail archive of the
cygwin-patches
mailing list for the Cygwin project.
[PATCH] Cygwin: fhandler_socket::open: set errno according to POSIX
- From: Ken Brown <kbrown at cornell dot edu>
- To: "cygwin-patches at cygwin dot com" <cygwin-patches at cygwin dot com>
- Date: Tue, 24 Dec 2019 19:27:38 +0000
- Subject: [PATCH] Cygwin: fhandler_socket::open: set errno according to POSIX
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cornell.edu; dmarc=pass action=none header.from=cornell.edu; dkim=pass header.d=cornell.edu; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K9DfFlaHcUGyDMMMAoxsZXWnbWL3LAV38z8+TuZLJto=; b=c4iv+3SFkUhASqLIcBMCCoDL+QPLHn/YpwrzugcknSbCFpvZCH46jFWm8sV/tcvmrFkOFxoAlfe5qp8UgteQtqFzHQbhhCo/D5sUWUnkv7t3XQinB0C+gxPuumewz/0QMJJWnNS49dmu/bnleGt/8OrIUuytBJ0Y8QOhCRzSDh4AvBdex1kakeKgPGvbLne1wLV51QFL5C7Rkr0oGr6KT997PTBvQATk3Wl9Y8HTX1XW5j6LCJ6/fB8g/hGV9GdyZT94tcRfxjj/3YxAwjZHklG4nkW9vF/WFVRXr9lFvFZOiOyUIzqZxR73EKQ7Ul6rZr9SIWM/8PDZJKla8Ngbpw==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=He73wnqYdFvvzAb0ORS8kPSYQbUcFy+32inirFfURydlOPll5nQ4VvwMROkwASo6WCD6ZFOxh6n5qgO+0Kcwd8bvz4cyFAOXa9JyAla5/XwJsVyRgAe1ZhWjyZoS83dJm7RDx9BIBSRl6LVI5FC1i5gP/G+a035OQORKGESOUvQK5F7vf9gMN1WX9bq79uBu8iIlWfeNQkzjdzGPh6O4GrTaW16mLIMYjBij9k9SpQoGQRYh6VGObAHvgk2mQm2D/fZsiUo8alUSzAZUcixft6tFeY16NW7X88LWw3LWv+4BEnq6LICxuudgIs6QT0B1cvDTUVGjJy8ZCIvZVguimA==
Set errno to EOPNOTSUPP instead of ENXIO when 'open' is called on a
socket. This is consistent with POSIX, starting with the 2016
edition. Earlier editions were silent on this issue.
---
winsup/cygwin/fhandler_socket.cc | 2 +-
winsup/cygwin/release/3.1.3 | 5 +++++
winsup/doc/new-features.xml | 4 ++++
3 files changed, 10 insertions(+), 1 deletion(-)
create mode 100644 winsup/cygwin/release/3.1.3
diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc
index 9f33d8087..227004b43 100644
--- a/winsup/cygwin/fhandler_socket.cc
+++ b/winsup/cygwin/fhandler_socket.cc
@@ -269,7 +269,7 @@ fhandler_socket::fcntl (int cmd, intptr_t arg)
int
fhandler_socket::open (int flags, mode_t mode)
{
- set_errno (ENXIO);
+ set_errno (EOPNOTSUPP);
return 0;
}
diff --git a/winsup/cygwin/release/3.1.3 b/winsup/cygwin/release/3.1.3
new file mode 100644
index 000000000..654201c6f
--- /dev/null
+++ b/winsup/cygwin/release/3.1.3
@@ -0,0 +1,5 @@
+What changed:
+-------------
+
+- The errno is now EOPNOTSUPP instead of ENXIO when 'open' is called
+ on a socket.
diff --git a/winsup/doc/new-features.xml b/winsup/doc/new-features.xml
index 65bdc17ab..1d93c7730 100644
--- a/winsup/doc/new-features.xml
+++ b/winsup/doc/new-features.xml
@@ -54,6 +54,10 @@ Allow times(2) to have a NULL argument, as on Linux.
Improve /proc/cpuinfo output and align more closely with Linux.
</para></listitem>
+<listitem><para>
+The errno is now EOPNOTSUPP instead of ENXIO when 'open' is called on a socket.
+</para></listitem>
+
</itemizedlist>
</sect2>
--
2.21.0