X-Spam-Check-By: sourceware.org
Date: Tue, 11 Apr 2006 11:28:09 +0200
From: Corinna Vinschen <corinna-cygwin@cygwin.com>
To: cygwin@cygwin.com
Subject: Re: getsockname problem
Message-ID: <20060411092809.GB31165@calimero.vinschen.de>
Reply-To: cygwin@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
References: <001101c65a43$890d59a0$a501a8c0@CAM.ARTIMI.COM> <Pine.BSI.4.61.0604071714520.4432@malasada.lava.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <Pine.BSI.4.61.0604071714520.4432@malasada.lava.net>
User-Agent: Mutt/1.4.2i
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
Precedence: bulk
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie.com@cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com

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/

