[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: TTL expired?
On Tue, Mar 06, 2007 at 10:09:49PM +0100, Juliusz Chroboczek wrote:
> I've just switched to 0.1.2.8, and when trying to access a hidden
> service that doesn't exist, I'm getting SOCKS 5 error number 6
> ``TTL expired''.
>
> That's a somewhat unexpected error -- I'd expect to get error 4 ``host
> unreachable''.
You're right: I've changed line 471 of rendclient.c so it'll use
END_STREAM_REASON_RESOLVEFAILED rather than END_STREAM_REASON_TIMEOUT,
which will result in a socks5 error 4 (host unreachable).
But there's a deeper issue, which is that we return socks5 error 6 (ttl
expired) for cases of END_STREAM_REASON_TIMEOUT, and this is probably
wrong. What's happening on Tor's side is that it's trying to build or
find a suitable circuit for the stream, but it gives up after a few
minutes and tells you you're out of luck.
Is this a host unreachable case or a network unreachable case? As far as
I can tell, the socks5 error messages are totally undocumented beyond
the short phrase for each one. I did find Some Guy On The Internet who
speculated a few more details:
http://socksipy.sourceforge.net/readme.txt
None of these fit the "we timed out without even trying to make the
connection" case in Tor, but host unreachable and network unreachable
seem closest. Anybody have a good rationale for one over the other?
--Roger