|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1175 Details
Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges
This page provides all information on Problem Report 1175.
Report 1175 Actions
Problem Report Number 1175 Submitter's Classification Specification problem State Resolved Resolution Rejected (REJ) Problem Resolution ID REJ.X.0377 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published null Product Standard Sockets (UNIX 95) Certification Program The Open Brand certification program Test Suite VSU version 4.1.0 Test Identification Sockets/connect 6,7,8 Problem Summary PG4U.00090 This request claims that UNIX domain sockets need not support O_NONBLOCK semantics. Problem Text
If connect peer issues listen() call in the case of asynchronous mode a UNIX
domain socket, the test suite expects that connect() a call is successfull.
But we can't find such a description in CAE specification.Test Output
TEST PURPOSE #6
If the implementation supports a communications domain
and a connection-oriented socket type:
A call to int connect(int socket, const struct
sockaddr *address, size_t address_len) when the
connection cannot be immediately established and
O_NONBLOCK is set for socket shall return -1, set
errno to EINPROGRESS, and establish the connection
asynchronously.
PREP: Get VSU_CONNECT_TIMEOUT configuration variable
TEST: AF_INET SOCK_STREAM
PREP: Create test sockaddr_in: address = 133.203.212.88, port = 4061
PREP: Create three sockets
PREP: Wait for child to be ready
PREP: Connect twice to fill queue
PREP: Set O_NONBLOCK
TEST: connect returns with EINPROGRESS
TEST: Did not block
PREP: Notify child to accept
TEST: Await notification connections completed
TEST: AF_UNIX SOCK_STREAM
PREP: Create test sockaddr_un: path = ../tmp/unix.a000O-
PREP: Child: create socket
PREP: Child: bind to socket
PREP: Child: listen on socket with backlog of 2
PREP: Child: tell parent ready
PREP: Child: wait for parent to become ready
PREP: Child: accept queued connections
PREP: Child: accept connection being asynchronously established
PREP: Child: notify parent connections completed
PREP: Child: wait for parent to complete test
PREP: Create three sockets
PREP: Wait for child to be ready
PREP: Connect twice to fill queue
PREP: Set O_NONBLOCK
TEST: connect returns with EINPROGRESS
ERROR: Call to connect failed unexpectedly, expected errno = EINPROGRESS, errno = 5(EIO - I/O error)
PREP: Child: create socket
PREP: Child: bind to socket
PREP: Child: listen on socket with backlog of 2
PREP: Child: tell parent ready
6 FAIL
TEST PURPOSE #7
If the implementation supports a communications domain
and a connection-oriented socket type:
A call to int connect(int socket, const struct
sockaddr *address, size_t address_len) when
asynchronous connection establishment is in progress
for socket shall return -1 and set errno to EALREADY.
PREP: Get VSU_CONNECT_TIMEOUT configuration variable
TEST: AF_INET SOCK_STREAM
PREP: Create test sockaddr_in: address = 133.203.212.88, port = 1205
PREP: Create three sockets
PREP: Wait for child to be ready
PREP: Connect twice to fill queue
PREP: Set O_NONBLOCK
TEST: connect returns with EINPROGRESS
TEST: Did not block
TEST: connect returns with EALREADY
CLEANUP: Close sockets, kill child
TEST: AF_UNIX SOCK_STREAM
PREP: Create test sockaddr_un: path = ../tmp/unix.a000Ok
PREP: Child: create socket
PREP: Child: bind to socket
PREP: Child: listen on socket with backlog of 2
PREP: Child: tell parent ready
PREP: Child: wait for parent to complete test
PREP: Create three sockets
PREP: Wait for child to be ready
PREP: Connect twice to fill queue
PREP: Set O_NONBLOCK
TEST: connect returns with EINPROGRESS
ERROR: Call to connect failed unexpectedly, expected errno = EINPROGRESS, errno = 5(EIO - I/O error)
PREP: Child: create socket
PREP: Child: bind to socket
PREP: Child: listen on socket with backlog of 2
PREP: Child: tell parent ready
7 FAIL
TEST PURPOSE #8
If the implementation supports a communications domain
and a connection-oriented socket type:
After a connection is asynchronously established due
to a call to int connect(int socket, const struct
sockaddr *address, size_t address_len) select() and
poll() shall indicate socket is ready for writing.
PREP: Get VSU_CONNECT_TIMEOUT configuration variable
TEST: AF_INET SOCK_STREAM
PREP: Create test sockaddr_in: address = 133.203.212.88, port = 2305
PREP: Create three sockets
PREP: Wait for child to be ready
PREP: Connect twice to fill queue
PREP: Set O_NONBLOCK
TEST: connect returns with EINPROGRESS
PREP: Notify child to accept
TEST: Await notification connections completed
TEST: Select reports socket ready to write
TEST: Poll reports socket ready to write
TEST: AF_UNIX SOCK_STREAM
PREP: Create test sockaddr_un: path = ../tmp/unix.a000Ov
PREP: Child: create socket
PREP: Child: bind to socket
PREP: Child: listen on socket with backlog of 2
PREP: Child: tell parent ready
PREP: Child: wait for parent to become ready
PREP: Child: accept queued connections
PREP: Child: accept connection being asynchronously established
PREP: Child: notify parent connections completed
PREP: Child: wait for parent to complete test
PREP: Create three sockets
PREP: Wait for child to be ready
PREP: Connect twice to fill queue
PREP: Set O_NONBLOCK
TEST: connect returns with EINPROGRESS
ERROR: Call to connect failed unexpectedly, expected errno = EINPROGRESS, errno = 5(EIO - I/O error)
PREP: Child: create socket
PREP: Child: bind to socket
PREP: Child: listen on socket with backlog of 2
PREP: Child: tell parent ready
8 FAILReview Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
We recommend this request be refused.
The connect() spec states that
If the connection cannot be established immediately and
O_NONBLOCK is set for the file descriptor for the socket,
connect() will fail and set errno to [EINPROGRESS], but the
connection request will not be aborted, and the connection will
be established asynchronously.
We believe the submitter assumes that it is possible to pick and
choose functionality from the the spec that will apply to
different socket types unless the spec specificly states that the
functionality is required by that socket type. This is not true.
All functionality presented by the spec is required for all
socket types unless the spec specifically states it is optional
for a socket type.
Review Type SA Review Start Date null Completed null Status Complete Review Resolution Rejected (REJ) Review Conclusion
X
This request is refused.
Problem Reporting System Options:
- View Report 1175
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority