This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: mtr under cygwin
- From: Corinna Vinschen <corinna-cygwin at cygwin dot com>
- To: cygwin at cygwin dot com
- Date: Thu, 11 Mar 2010 11:04:02 +0100
- Subject: Re: mtr under cygwin
- References: <20090121225543.GA28241@panix.com> <81aa6b5a1003101524i30177381te6906ea8cccfe386@mail.gmail.com>
- Reply-to: 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@panix.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