|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1228 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 1228.
Report 1228 Actions
Problem Report Number 1228 Submitter's Classification Test Suite problem State Resolved Resolution Rejected (REJ) Problem Resolution ID REJ.X.0430 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.0.2 Test Identification Base/close 11 Problem Summary PG4U.00036 This was refused because it is a duplicate. See TSD4U.00010 instead. Problem Text
In the setsockopt() specification in X/Open Networking Services, Issue 4,
it states that when SO_LINGER socket option is set, the socket "lingers
on a close() if data is present."
In a AF_UNIX SOCK_STREAM connection, data are simply passed
from a local socket to another socket. Data is always placed in the
receiving socket's received buffer. Data would not be left
in the sending socket's send buffer, subsequently the socket never
needs to linger when it is closed.
It is not always valid to assume that there will be pending data in the
sending socket when you get an EWOULDBLOCK error when you call send().
In a AF_UNIX SOCK_STREAM connection, the high water mark of the sending
socket is set to 0 when the receiving socket's receive buffer is full.
This causes the send() function to generate an EWOULDBLOCK error and yet
there is no pending data in the sending side.
I propose X/Open to modify this test case so that it will not test SO_LINGER
timer for AF_UNIX SOCK_STREAM.Test Output
TEST PURPOSE #11
If the implementation supports a communications domain
and a connection-oriented socket type:
A successful call to int close(int fildes) for a
connection-oriented socket with untransmitted data and
the SO_LINGER option is set for the socket shall block
for up to the current linger interval until all data
is transmitted.
TEST: AF_INET SOCK_STREAM
PREP: Create test sockaddr_in: address = 15.14.144.53, port = 4421
PREP: Create socket
PREP: Bind to socket
PREP: Call listen for socket
PREP: Signal child parent is ready
PREP: Wait for child to complete
TEST: AF_UNIX SOCK_STREAM
PREP: Create test sockaddr_un: path = ../tmp/unix.a01181
PREP: Child: wait for parent
PREP: Create a socket
PREP: Connect socket to address 15.14.144.53, port 4421
PREP: Set 5 second linger interval
TEST: Repeatedly send 1024 bytes until send blocks
TEST: close() lingers
PREP: Create socket
PREP: Bind to socket
PREP: Call listen for socket
PREP: Signal child parent is ready
PREP: Wait for child to complete
PREP: Child: wait for parent
PREP: Create a socket
PREP: Bind address ../tmp/uclient.a01183 to socket
PREP: Connect to address ../tmp/unix.a01181
PREP: Set 5 second linger interval
TEST: Repeatedly send 1024 bytes until send blocks
TEST: close() lingers
ERROR: close() did not linger the time specified
Expected at least 5 seconds, actually 0 seconds
11 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.
This is the same as ruling TSD4U.00010.
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 1228
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority