El Lunes 08 Marzo 2010, Iñaki Baz Castillo escribió:
El Lunes 08 Marzo 2010, Juha Heinanen escribió:
Alex Balashov writes:
But when does t_relay() itself ever fail due to endpoint reachability issues? I think t_relay() only fails for formal reasons, like host name lookup failure, invalid address format, etc? Otherwise, it returns success; if the endpoint is not reachable, the transaction simply times out. If this is the case, branch route does get called.
my understanding is that t_relay calls a branch route always if t_on_branch is used to set it. then in that branch route, you should be able to call set_forward_no_connect().
I really though that t_relay() fails (return a negative code and doesn't invoke a loaded branch_route) in case the TCP cannot be established. Am I wrong?
Yes I'm wrong. t_relay() doesn't fail (doesn't return a error) in case a TCP connection can not be established. If you set branch_route before it will be executed and ~10 seconds later (configurable) you get the TCP error:
ERROR:core:tcp_blocking_connect: timeout 10 s elapsed from 10 s ERROR:core:tcpconn_connect: tcp_blocking_connect failed