HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1176 Details

Help Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges

This page provides all information on Problem Report 1176.


Report 1176 Actions


    Problem Report Number 1176
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0378
    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/accept 1
    Problem Summary PG4U.00089 This request claims that implementations need not support setting the SO_LINGER option on UNIX domain sockets.
    Problem Text
    This test may fail if SO_LINGER is not supported on a UNIX domain
    socket.
    The testcase attempts to set SO_LINGER option at SOL_SOCKET level
    on a UNIX protocol socket.

    If the option is not supported by protocol, setsockopt() will fail
    with ENOPROTOOPT in the CAE Specification , in the Sockets Interfaces
    section, under setsockopt().

    Our implementation does not support setting this option for a UNIX
    socket. So in case of this, setsockopt() fail with ENOPROTOPT error.

    The testcase should consider that setsockopt() will fail with
    ENOPROTOPT error.

    Test Output
    TEST PURPOSE #1
    If the implementation supports a communications
    domain and a connection-oriented socket type:
    A successful call to int accept(int socket, struct
    sockaddr *address, size_t *address_len) shall extract
    the first pending connection present on socket, create
    a new socket with the same socket type protocol and
    address family as socket, allocate a new file
    descriptor for the new socket, and return that file
    descriptor.
    TEST: AF_INET SOCK_STREAM
    PREP: Create test sockaddr_in: address = 133.208.11.154, port = 1961
    PREP: Create socket
    PREP: Set socket linger option
    PREP: Bind to socket
    PREP: Call listen for socket
    PREP: Signal child parent is ready
    TEST: Call accept
    TEST: Returned descriptor is new
    TEST: New descriptor has same properties as original
    CLEANUP: Close sockets, kill child
    TEST: AF_UNIX SOCK_STREAM
    PREP: Create test sockaddr_un: path = ../tmp/unix.a002Js
    PREP: Child: wait for parent
    PREP: Create a socket
    PREP: Connect socket to address 133.208.11.154, port 1961
    PREP: Child: wait for parent to complete
    CLEANUP: Child: close socket
    PREP: Create socket
    PREP: Set socket linger option
    ERROR: setsockopt failed, errno = 99(ENOPROTOOPT - Protocol not available)
    PREP: Child: wait for parent
    1 UNRESOLVED

    Review 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 setsockopt() spec states that

    The socket level options can be enabled or disabled.
    The options are as follows:

    ...

    SO_LINGER Lingers on a close() if data is
    present. This option controls
    ...

    The spec does not mention any case where support for this option
    is optional. In fact, the setsockopt() spec Application Usage
    section states that

    The SO_ options are always present at the uppermost
    socket level.

    So we believe all sockets must support a call to
    setsockopt(,,SO_LINGER,,,) even if the socket is
    implemented in such a way that a linger will never
    occur.

    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:

     

    Back   


Contact the Certification Authority