[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ping: invalid argument



   Dear Debianists:

   Between two successive calls to ping, it crapped out.
(Tried twice in a row because I had a flaky DSL connection,
and wanted to see whether it had decided to join the party.)

==============================
root@elmore:~# ifup eth0
    <snip>
DHCPACK from 192.168.0.1
bound to 192.168.1.64 -- renewal in 14 seconds.
root@elmore:~# ping -n 1 www.debian.org
ping: unknown host www.debian.org
root@elmore:~# ping -n 1 www.debian.org
connect: Invalid argument
==============================

   Ran strace and get, annotated:

==============================
    // OK, we can get a socket.
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
    // Not sure why it has to bother the router
    // (192.168.0.1), but it seems happy.
connect(3, {sa_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("192.168.0.1")}, 28) = 0
fcntl64(3, F_GETFL)                     = 0x2 (flags O_RDWR)
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
gettimeofday({1170694577, 208172}, NULL) = 0
poll([{fd=3, events=POLLOUT, revents=POLLOUT}], 1, 0) = 1
    // We can send to Debian...
send(3, "\225z\1\0\0\1\0\0\0\0\0\0\3www\6debian\3org\0\0\1\0\1", 32, 0) = 32
poll([{fd=3, events=POLLIN, revents=POLLIN}], 1, 5000) = 1
ioctl(3, FIONREAD, [147])               = 0
    // ... and even get a 147-byte response.  I guess the
    // actual ping is OK.  (Wireshark verifies this.)
recvfrom(3,
"\225z\201\200\0\1\0\1\0\4\0\1\3www\6debian\3org\0\0\1\0"..., 1024, 0,
{sa_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("192.168.0.1")}, [16]) = 147
close(3)                                = 0
    // But now we want to connect to 0.0.0.1?!  I should
    // hope it complains about that argument.
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
connect(3, {sa_family=AF_INET, sin_port=htons(1025),
sin_addr=inet_addr("0.0.0.1")}, 16) = -1 EINVAL (Invalid argument)
==============================

o Asking Google about `"0.0.0.1" "ping: invalid argument"'
  returns precisely zip.
o It returns some stuff from a search on `"ping:  invalid
  argument"', but none of it seems germane.
o Anything related to `"0.0.0.1"' /seems/ to suggest that
  that's an invalid IP address, but I can't find anything
  that really says so.
o Nor do I find anything in the BTS or the mailing-list
  archives.
o I've tried bringing eth0 down and up again, but no joy.

   If anyone could supply me a clue, I'd be most
appreciative.


-- 
	    Best wishes,

	    	 Max Hyre


Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: