On Fri, 7 Apr 2006, Dave Korn wrote:
Should have read the man page instead!s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); printf("socket = %d\nlength = %d\n", s, len); rc = getsockname(s, (struct sockaddr *) &sa, &len);http://www.opengroup.org/onlinepubs/007908799/xns/getsockname.html "If the socket has not been bound to a local name, the value stored in the object pointed to by address is unspecified."
This doesn't explain why the code fragment works under UNIX and Linux systems (that I have access to), but fails under Cygwin.
According to Steven's 'Unix Network Programming', 2'd edition, Vol 1, "Posix.1g allows a call to getsockname() on an unbound socket". Furthermore, the Cygwin API indicates Cygwin's networking support is standardized to Posix.1g for getsockname() and a whole bunch of the other networking functions.
-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/

