Try all routes when establishing a ROSE connections.
Subsystems (2)
Quoted 1 line
From Jean-Paul F6FBB:
ROSE will only try to establish a route using the first route in its routing table. Fix to iterate through all additional routes if a connection attempt has failed.
Signed-off-by Ralf Baechle <[email protected]>
--- net/rose/af_rose.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
net/rose/af_rose.c +6 -1
@@ -753,7 +753,7 @@ static int rose_connect(struct socket *srose_insert_socket (sk);/* Finish the bind */ } - +rose_try_next_neigh: rose->dest_addr = addr->srose_addr; rose->dest_call = addr->srose_call; rose->rand = ((long )rose &0xFFFF ) + rose->lci;
@@ -811,6 +811,11 @@ static int rose_connect(struct socket *s }if (sk->sk_state !=TCP_ESTABLISHED ) { +/* Try next neighbour */ + rose->neighbour =rose_get_neigh (&addr->srose_addr, &cause, &diagnostic); +if (rose->neighbour) + goto rose_try_next_neigh; +/* No more neighbour */ sock->state =SS_UNCONNECTED ;return sock_error (sk);/* Always set at this point */ }
From: Ralf Baechle <[email protected]>
Date: Fri, 30 Jun 2006 14:53:16 +0100
Quoted 7 lines
Quoted 1 line
From Jean-Paul F6FBB:
ROSE will only try to establish a route using the first route in its routing table. Fix to iterate through all additional routes if a connection attempt has failed.
Signed-off-by Ralf Baechle <[email protected]>
Applied, thanks.