|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1193 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 1193.
Report 1193 Actions
Problem Report Number 1193 Submitter's Classification Test Suite problem State Resolved Resolution Rejected (REJ) Problem Resolution ID REJ.X.0395 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 17 Problem Summary PG4U.00072 The IR claims that the connect() is blocking because no accept() as been performed. Problem Text
The IR claims that the connect() is blocking because no accept()
as been performed.
The implementation of the assertion is not portable.
The AF_UNIX SOCK_STREAM test on this assertion is FAILED because
the connect() issued from the server failed with errno EINTR.
connect() for AF_UNIX sockets has a slightly different implementation
than connect() for AF_INET sockets. AF_UNIX does not complete a
connection until the accept is done on the server side. (AF_INET, on
the other hand, would complete the connection and return a zero return
value as soon as the listen is done on the server side.)
Since this testcase never issues an accept on the server side
the connect call will never complete. It waits until it finally times
out and sends a signal to interrupt the request and fails with EINTR.Test Output
TEST PURPOSE #17
If the implementation supports the AF_UNIX
communications domain and a connection-oriented socket
type:
EACCES in errno and return -1 on a call to int
connect(int socket, const struct sockaddr *address,
size_t address_len) when the address family of the
socket is AF_UNIX and write access is denied to the
named socket.
TEST: AF_UNIX SOCK_STREAM
PREP: Create test sockaddr_un: path = ../tmp/unix.ACbCxQ
PREP: Make a directory
PREP: Set file in this directory as address
PREP: Create socket
PREP: Wait for child to be ready
TEST: Call connect to address without write permission
TEST: Return value
TEST: errno value
ERROR: connect call failed incorrectly, errno was 120(EINTR - Interrupted system call) should have been EACCES
PREP: Child: create socket
PREP: Child: bind to socket
PREP: Child: change permissions on the file
PREP: Child: listen on socket with backlog of 2
PREP: Child: tell parent ready
PREP: Child: wait for parent to complete test
17 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.
We believe the test is correct.
Blocking during the connect indicates that the connect() accepted
the address specified as valid and is waiting for the connect()
to complete.
The issue of requiring an accept() call before the connect() will
complete is not meaningful since the connect() should never reach
the point of attempting the connection.
The spec requires that connect() return EACCESS when write access
is denied to the named socket.
Review Type SA Review Start Date null Completed null Status Complete Review Resolution Rejected (REJ) Review Conclusion
This request is refused.
Problem Reporting System Options:
- View Report 1193
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority