diff options
author | fenner <fenner@FreeBSD.org> | 1999-01-18 01:54:36 +0000 |
---|---|---|
committer | fenner <fenner@FreeBSD.org> | 1999-01-18 01:54:36 +0000 |
commit | 30dc804fc79c86504650062ea1bb09de334b330f (patch) | |
tree | 263fa733361300d2e776f207364489478ac01a51 | |
parent | 35cffc9a2f33d21be94773a6fa89d8c5563b4e59 (diff) | |
download | FreeBSD-src-30dc804fc79c86504650062ea1bb09de334b330f.zip FreeBSD-src-30dc804fc79c86504650062ea1bb09de334b330f.tar.gz |
If arpresolve() gets passed a route with a null llinfo, call
arplookup() to try again. This gets rid of at least one user's
"arpresolve: can't allocate llinfo" errors, and arplookup() gives
better error messages to help track down the problem if there really
is a problem with the routing table.
-rw-r--r-- | sys/netinet/if_ether.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c index a1119b3..ba47450 100644 --- a/sys/netinet/if_ether.c +++ b/sys/netinet/if_ether.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)if_ether.c 8.1 (Berkeley) 6/10/93 - * $Id: if_ether.c,v 1.49 1998/12/14 18:09:13 luigi Exp $ + * $Id: if_ether.c,v 1.50 1999/01/10 17:40:10 luigi Exp $ */ /* @@ -340,7 +340,7 @@ arpresolve(ac, rt, m, dst, desten, rt0) } if (rt) la = (struct llinfo_arp *)rt->rt_llinfo; - else { + if (la == 0) { la = arplookup(SIN(dst)->sin_addr.s_addr, 1, 0); if (la) rt = la->la_rt; |