Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Date: Wed, 4 Apr 2001 19:47:31 -0400 From: Christopher Faylor To: "'cygwin AT cygwin DOT com'" Cc: jmorrison AT gt DOT ca Subject: Re: Bug in Cygwin - networking api ?? Message-ID: <20010404194731.C5687@redhat.com> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: "'cygwin AT cygwin DOT com'" , jmorrison AT gt DOT ca References: <99C92DEAB441D411883F00D0B747A9C60243C846 AT yvrxch01 DOT gt DOT ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.11i In-Reply-To: <99C92DEAB441D411883F00D0B747A9C60243C846@yvrxch01.gt.ca>; from jmorrison@gt.ca on Wed, Apr 04, 2001 at 04:19:52PM -0700 You realize that the email that you quoted comes from almost two years ago, right? cgf On Wed, Apr 04, 2001 at 04:19:52PM -0700, John Paul Morrison wrote: >Did you ever get any replies to this? I was trying to compile traceroute in >the latest >Cygwin and couldn't get it working. > >I did a little bit of digging on the web, and a couple sites said that >either winsock itself was broken for raw sockets, or you had to dig deeper >into the windows API (reverse engineer tracert.exe and icmp.dll?); > >another site added that in Windows NT only administrators could create raw >sockets (and gave a registry key to disable the behaviour). > > > >----------------- >Bug in Cygwin - networking api ?? >To: cygwin AT sourceware DOT cygnus DOT com >Subject: Bug in Cygwin - networking api ?? >From: "Ashish C. Nagre" >Date: Thu, 03 Jun 1999 10:56:46 -0700 >Organization: Cisco Systems >Reply-To: ashishcn AT cisco DOT com > >Hello, >I have come across two important problems with the cygnus socket >implemntation. > >1. A raw socket is opened with the following call: > > s = socket (AF_INET, SOCK_RAW, IPPROTO_RAW) >but when I used "snoop" to look at the packets being out on the wire, >the protocol field contained in the packets was 255 (RAW) >On changing the above socket call to > s = socket (AF_INET, SOCK_RAW, IPPROTO_UDP) >It put the correct value that was expected. > >2. When packets are sent to it, they are not picked up (or not being >given to the application for some reason) >The socket calls used to wait for a packet are as follows: > > fd_set fds; > struct sockaddr_in *fromp; > int fromlen = sizeof (*fromp); > > FD_ZERO (&fds); > FD_SET (sock, &fds); > > if (select (sock + 1, &fds, NULL, NULL, &wait) > 0) > cc = recvfrom (s, (char*)packet, sizeof(packet)), 0, > (struct sockaddr *)fromp, &fromlen); > >Is there some problem with the implementation of the select call ? >Does some special care have to be taken ? >The code that is being used has been around ('around' as in 'being >used') for a long time, and is an important application on all UNIX >systems. (To those who are curious, it is the traceroute by Van >Jacobson). >For now, the strange behaviour of this code seems to me like a bug(s) in >the implementation of the networking API in cygwin. > >I will be very grateful to anyone answering these questions. > >-- >Want to unsubscribe from this list? >Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com > >-- >Want to unsubscribe from this list? >Check out: http://cygwin.com/ml/#unsubscribe-simple -- cgf AT cygnus DOT com Red Hat, Inc. http://sources.redhat.com/ http://www.redhat.com/ -- Want to unsubscribe from this list? Check out: http://cygwin.com/ml/#unsubscribe-simple