This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: getsockname problem


On Apr  7 17:56, Antonio Querubin wrote:
> 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.

We can't create a local name for the socket if the underlying getsockname
function in WinSock doesn't.  Apparenty WinSock doesn't.  Which should be
no problem since the behaviour is still conformant to the standards.
Note that Posix 1.g allows to return a local name, it doesn't demand it.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

--
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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]