delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2010/03/11/05:04:15

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Date: Thu, 11 Mar 2010 11:04:02 +0100
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: mtr under cygwin
Message-ID: <20100311100402.GF6505@calimero.vinschen.de>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
References: <20090121225543 DOT GA28241 AT panix DOT com> <81aa6b5a1003101524i30177381te6906ea8cccfe386 AT mail DOT gmail DOT com>
MIME-Version: 1.0
In-Reply-To: <81aa6b5a1003101524i30177381te6906ea8cccfe386@mail.gmail.com>
User-Agent: Mutt/1.5.20 (2009-06-14)
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On Mar 10 18:24, Brian Minton wrote:
> I'm having the same issue.  I just tried it with mtr 0.75 under cygwin
> 1.7.1 and it is still not working.
> 
> On Wed, Jan 21, 2009 at 5:55 PM, David Arnstein <arnstein AT panix DOT com> wrote:
> > I am able to compile mtr 0.75 under Cygwin, see
> > http://www.bitwizard.nl/mtr/.
> >
> > But mtr is not working. Using ddd, I see that the call
> >        getsockname (recvsock, name, &len);
> >
> > does not seem to be filling in name correctly, when recvsock=3. It
> > fills in name->sa_family = 0.
> >
> > Any suggestions?

Did socket creation succeed?  mtr uses raw sockets and those can only be
created by admin users since XP.  Since Vista, you must also run the
application in an elevated shell.  I just tested to create such a socket
and getsockname works fine for me:

  bash$ cat > sockname.c <<EOF
  #include <stdio.h>
  #include <string.h>
  #include <errno.h>
  #include <sys/socket.h>

  int
  main (int argc, char **argv)
  {
    int fd;
    int ret;
    int val;
    socklen_t siz;
    struct sockaddr sa;

    fd = socket(AF_INET, SOCK_RAW, 0);
    if (fd >= 0)
      {
	ret = getsockname (fd, &sa, (siz = sizeof sa, &siz));
	if (!ret)
	  printf ("family: %d\n", sa.sa_family);
	else
	  printf ("errno: %d (%s)\n", errno, strerror (errno));
	close (fd);
      }
    return 0;
  }
  EOF
  bash$ gcc -o sockname sockname.c
  bash$ ./sockname
  family: 2


Corinna

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

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019