ROSE: AX25: finding routes simplification
With previous patch, rose_get_neigh() routine investigates the full list of neighbor nodes until it finds or not an already connected node whether it is called locally or through a level 3 transit frame. If no routes are opened through an adjacent connected node then a classical connect request is attempted. Then there is no more reason for an extra loop such as the one removed by this patch. Signed-off-by: Bernard Pidoux <f6bvp@free.fr> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c5d8b24ad0
commit
68aa3fd551
|
@ -803,7 +803,6 @@ static int rose_connect(struct socket *sock, struct sockaddr *uaddr, int addr_le
|
|||
|
||||
rose_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;
|
||||
|
@ -865,12 +864,6 @@ rose_try_next_neigh:
|
|||
}
|
||||
|
||||
if (sk->sk_state != TCP_ESTABLISHED) {
|
||||
/* Try next neighbour */
|
||||
rose->neighbour = rose_get_neigh(&addr->srose_addr, &cause, &diagnostic, 0);
|
||||
if (rose->neighbour)
|
||||
goto rose_try_next_neigh;
|
||||
|
||||
/* No more neighbours */
|
||||
sock->state = SS_UNCONNECTED;
|
||||
err = sock_error(sk); /* Always set at this point */
|
||||
goto out_release;
|
||||
|
|
Loading…
Reference in New Issue