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
new stats; change keepalives to use rcv_nxt instead of rcv_nxt-1
[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
a68b2ca
..
a40cf06
100644
(file)
--- a/
usr/src/sys/netinet/ip_output.c
+++ b/
usr/src/sys/netinet/ip_output.c
@@
-1,9
+1,9
@@
/*
/*
- * Copyright (c) 1982 Regents of the University of California.
+ * Copyright (c) 1982
, 1986
Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
- * @(#)ip_output.c
6.13
(Berkeley) %G%
+ * @(#)ip_output.c
7.2
(Berkeley) %G%
*/
#include "param.h"
*/
#include "param.h"
@@
-24,7
+24,7
@@
#include "ip_var.h"
#ifdef vax
#include "ip_var.h"
#ifdef vax
-#include "../
vax
/mtpr.h"
+#include "../
machine
/mtpr.h"
#endif
struct mbuf *ip_insertoptions();
#endif
struct mbuf *ip_insertoptions();
@@
-88,7
+88,10
@@
ip_output(m, opt, ro, flags)
*/
if (flags & IP_ROUTETOIF) {
struct in_ifaddr *ia;
*/
if (flags & IP_ROUTETOIF) {
struct in_ifaddr *ia;
- ia = in_iaonnetof(in_netof(ip->ip_dst));
+
+ ia = (struct in_ifaddr *)ifa_ifwithdstaddr(dst);
+ if (ia == 0)
+ ia = in_iaonnetof(in_netof(ip->ip_dst));
if (ia == 0) {
error = ENETUNREACH;
goto bad;
if (ia == 0) {
error = ENETUNREACH;
goto bad;
@@
-190,7
+193,7
@@
ip_output(m, opt, ro, flags)
mh->m_len = sizeof (struct ip) + olen;
} else
mh->m_len = sizeof (struct ip);
mh->m_len = sizeof (struct ip) + olen;
} else
mh->m_len = sizeof (struct ip);
- mhip->ip_off =
off >> 3
;
+ mhip->ip_off =
(off >> 3) + (ip->ip_off & ~IP_MF)
;
if (ip->ip_off & IP_MF)
mhip->ip_off |= IP_MF;
if (off + len >= ip->ip_len-hlen)
if (ip->ip_off & IP_MF)
mhip->ip_off |= IP_MF;
if (off + len >= ip->ip_len-hlen)