projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
much more generous NFILE
[unix-history]
/
usr
/
src
/
sys
/
netinet
/
ip_output.c
diff --git
a/usr/src/sys/netinet/ip_output.c
b/usr/src/sys/netinet/ip_output.c
index
5eb920b
..
26e041a
100644
(file)
--- a/
usr/src/sys/netinet/ip_output.c
+++ b/
usr/src/sys/netinet/ip_output.c
@@
-1,4
+1,4
@@
-/* ip_output.c 1.3
0 82/03/30
*/
+/* ip_output.c 1.3
1 82/03/31
*/
#include "../h/param.h"
#include "../h/mbuf.h"
#include "../h/param.h"
#include "../h/mbuf.h"
@@
-49,15
+49,16
@@
COUNT(IP_OUTPUT);
ro->ro_dst.sa_family = AF_INET;
((struct sockaddr_in *)&ro->ro_dst)->sin_addr = ip->ip_dst;
rtalloc(ro);
ro->ro_dst.sa_family = AF_INET;
((struct sockaddr_in *)&ro->ro_dst)->sin_addr = ip->ip_dst;
rtalloc(ro);
- if (ro != &iproute)
- ro->ro_rt->rt_refcnt++;
}
if (ro->ro_rt == 0 || (ifp = ro->ro_rt->rt_ifp) == 0) {
}
if (ro->ro_rt == 0 || (ifp = ro->ro_rt->rt_ifp) == 0) {
-printf("no route to %x\n", ip->ip_dst.s_addr);
+ printf("no route to %x (from %x, len %d)\n",
+ ip->ip_dst.s_addr, ip->ip_src.s_addr, ip->ip_len);
goto bad;
goto bad;
-}
+
}
dst = ro->ro_rt->rt_flags&RTF_DIRECT ?
(struct sockaddr *)&ro->ro_dst : &ro->ro_rt->rt_gateway;
dst = ro->ro_rt->rt_flags&RTF_DIRECT ?
(struct sockaddr *)&ro->ro_dst : &ro->ro_rt->rt_gateway;
+ if (ro == &iproute)
+ RTFREE(ro->ro_rt);
if (!allowbroadcast && (ifp->if_flags & IFF_BROADCAST)) {
struct sockaddr_in *sin;
if (!allowbroadcast && (ifp->if_flags & IFF_BROADCAST)) {
struct sockaddr_in *sin;