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
changes for var. length sockaddrs, routing lookup changes,
[unix-history]
/
usr
/
src
/
sys
/
netns
/
ns_input.c
diff --git
a/usr/src/sys/netns/ns_input.c
b/usr/src/sys/netns/ns_input.c
index
040280c
..
437201f
100644
(file)
--- a/
usr/src/sys/netns/ns_input.c
+++ b/
usr/src/sys/netns/ns_input.c
@@
-14,7
+14,7
@@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * @(#)ns_input.c 7.
5
(Berkeley) %G%
+ * @(#)ns_input.c 7.
6
(Berkeley) %G%
*/
#include "param.h"
*/
#include "param.h"
@@
-48,6
+48,7
@@
union ns_host ns_zerohost;
union ns_host ns_broadhost;
union ns_net ns_zeronet;
union ns_net ns_broadnet;
union ns_host ns_broadhost;
union ns_net ns_zeronet;
union ns_net ns_broadnet;
+struct sockaddr_ns ns_netmask, ns_hostmask;
static u_short allones[] = {-1, -1, -1};
static u_short allones[] = {-1, -1, -1};
@@
-70,6
+71,11
@@
ns_init()
nsrawpcb.nsp_next = nsrawpcb.nsp_prev = &nsrawpcb;
nsintrq.ifq_maxlen = nsqmaxlen;
ns_pexseq = time.tv_usec;
nsrawpcb.nsp_next = nsrawpcb.nsp_prev = &nsrawpcb;
nsintrq.ifq_maxlen = nsqmaxlen;
ns_pexseq = time.tv_usec;
+ ns_netmask.sns_len = 6;
+ ns_netmask.sns_addr.x_net = ns_broadnet;
+ ns_hostmask.sns_len = 12;
+ ns_hostmask.sns_addr.x_net = ns_broadnet;
+ ns_hostmask.sns_addr.x_host = ns_broadhost;
}
/*
}
/*
@@
-82,8
+88,6
@@
nsintr()
register struct idp *idp;
register struct mbuf *m;
register struct nspcb *nsp;
register struct idp *idp;
register struct mbuf *m;
register struct nspcb *nsp;
- struct ifnet *ifp;
- struct mbuf *m0;
register int i;
int len, s, error;
char oddpacketp;
register int i;
int len, s, error;
char oddpacketp;
@@
-247,7
+251,7
@@
idp_ctlinput(cmd, arg)
case PRC_HOSTDEAD:
case PRC_HOSTUNREACH:
sns = (struct sockaddr_ns *)arg;
case PRC_HOSTDEAD:
case PRC_HOSTUNREACH:
sns = (struct sockaddr_ns *)arg;
- if (sns->sns_family != AF_
INET
)
+ if (sns->sns_family != AF_
NS
)
return;
ns = &sns->sns_addr;
break;
return;
ns = &sns->sns_addr;
break;
@@
-412,6
+416,7
@@
struct route *ro;
bzero((caddr_t)ro, sizeof (*ro));
dst = (struct sockaddr_ns *)&ro->ro_dst;
bzero((caddr_t)ro, sizeof (*ro));
dst = (struct sockaddr_ns *)&ro->ro_dst;
+ dst->sns_len = sizeof(*dst);
dst->sns_family = AF_NS;
dst->sns_addr = *src;
dst->sns_addr.x_port = 0;
dst->sns_family = AF_NS;
dst->sns_addr = *src;
dst->sns_addr.x_port = 0;
@@
-436,7
+441,7
@@
struct mbuf *m;
struct ifnet *ifp;
{
register struct nspcb *nsp;
struct ifnet *ifp;
{
register struct nspcb *nsp;
- register struct ifaddr *ia;
+ register struct ifaddr *i
f
a;
/*
* Give any raw listeners a crack at the packet
*/
/*
* Give any raw listeners a crack at the packet
*/
@@
-452,11
+457,10
@@
struct ifnet *ifp;
idp->idp_sna.x_net = ns_zeronet;
idp->idp_sna.x_host = ns_thishost;
if (ifp && (ifp->if_flags & IFF_POINTOPOINT))
idp->idp_sna.x_net = ns_zeronet;
idp->idp_sna.x_host = ns_thishost;
if (ifp && (ifp->if_flags & IFF_POINTOPOINT))
- for(ia = ifp->if_addrlist; ia;
- ia = ia->ifa_next) {
- if (ia->ifa_addr.sa_family==AF_NS) {
- idp->idp_sna =
- satons_addr(ia->ifa_dstaddr);
+ for(ifa = ifp->if_addrlist; ifa;
+ ifa = ifa->ifa_next) {
+ if (ifa->ifa_addr->sa_family==AF_NS) {
+ idp->idp_sna = IA_SNS(ifa)->sns_addr;
break;
}
}
break;
}
}