Solaris TCP Listener code is broken

Description

Use of TCPListener seems to be broken on Solaris. On 11, I get a bind failure with EINVAL return. Same report came in for 10 on the list.

Mystery here is when this broke, since my reading of the code suggests that the build should be doing the same thing it did before.

Environment

None

Activity

Show:

Scott Cantor June 18, 2013 at 2:24 AM

Closing on release.

Scott Cantor May 6, 2013 at 3:22 AM

http://svn.shibboleth.net/view/cpp-sp?rev=3845&view=rev

Saves off addrlen from getaddrinfo. Need to test on all platforms, leaving open.

Scott Cantor February 19, 2013 at 7:08 PM

Confirmed, Solaris refuses to provide a length field but also won't accept a size that doesn't match the actual sockaddr size corresponding to the address family (which destroys the entire point of using sockaddr_storage). How they manage to get it wrong every time in the worst possible way is a question for the ages.

Scott Cantor February 19, 2013 at 7:04 PM

Only thing I can assume is that passing sizeof(sockaddr_in) to bind() works but passing sizeof(sockaddr_storage) doesn't.

That seems like a Solaris bug since without a longer length I couldn't get it to work with an IPv6 address, but there's probably something we're missing.

Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Original estimate

Components

Fix versions

Affects versions

Created February 19, 2013 at 6:51 PM
Updated June 18, 2013 at 2:24 AM
Resolved May 20, 2013 at 1:25 AM