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
64-bit changes -- ioctl cmds are u_longs.
[unix-history]
/
usr
/
src
/
sys
/
netns
/
ns.c
diff --git
a/usr/src/sys/netns/ns.c
b/usr/src/sys/netns/ns.c
index
d39b679
..
08e5d93
100644
(file)
--- a/
usr/src/sys/netns/ns.c
+++ b/
usr/src/sys/netns/ns.c
@@
-1,27
+1,25
@@
/*
/*
- * Copyright (c) 1984, 1985, 1986, 1987
Regents of the University of California.
- * All rights reserved.
+ * Copyright (c) 1984, 1985, 1986, 1987
, 1993
+ *
The Regents of the University of California.
All rights reserved.
*
* %sccs.include.redist.c%
*
*
* %sccs.include.redist.c%
*
- * @(#)ns.c
7.8
(Berkeley) %G%
+ * @(#)ns.c
8.3
(Berkeley) %G%
*/
*/
-#include
"param.h"
-#include
"mbuf.h"
-#include
"ioctl.h"
-#include
"protosw.h"
-#include
"errno.h"
-#include
"socket.h"
-#include
"socketvar.h"
+#include
<sys/param.h>
+#include
<sys/mbuf.h>
+#include
<sys/ioctl.h>
+#include
<sys/protosw.h>
+#include
<sys/errno.h>
+#include
<sys/socket.h>
+#include
<sys/socketvar.h>
+#include <net/if.h>
+#include <net/route.h>
-#include "../net/if.h"
-#include "../net/route.h"
-#include "../net/af.h"
-
-#include "ns.h"
-#include "ns_if.h"
+#include <netns/ns.h>
+#include <netns/ns_if.h>
#ifdef NS
#ifdef NS
@@
-35,7
+33,7
@@
extern struct sockaddr_ns ns_netmask, ns_hostmask;
/* ARGSUSED */
ns_control(so, cmd, data, ifp)
struct socket *so;
/* ARGSUSED */
ns_control(so, cmd, data, ifp)
struct socket *so;
-
int
cmd;
+
u_long
cmd;
caddr_t data;
register struct ifnet *ifp;
{
caddr_t data;
register struct ifnet *ifp;
{
@@
-44,7
+42,6
@@
ns_control(so, cmd, data, ifp)
register struct ns_ifaddr *ia;
struct ifaddr *ifa;
struct ns_ifaddr *oia;
register struct ns_ifaddr *ia;
struct ifaddr *ifa;
struct ns_ifaddr *oia;
- struct mbuf *m;
int error, dstIsNew, hostIsNew;
/*
int error, dstIsNew, hostIsNew;
/*
@@
-102,16
+99,18
@@
ns_control(so, cmd, data, ifp)
case SIOCSIFADDR:
case SIOCSIFDSTADDR:
if (ia == (struct ns_ifaddr *)0) {
case SIOCSIFADDR:
case SIOCSIFDSTADDR:
if (ia == (struct ns_ifaddr *)0) {
- m = m_getclr(M_WAIT, MT_IFADDR);
- if (m == (struct mbuf *)NULL)
+ oia = (struct ns_ifaddr *)
+ malloc(sizeof *ia, M_IFADDR, M_WAITOK);
+ if (oia == (struct ns_ifaddr *)NULL)
return (ENOBUFS);
return (ENOBUFS);
+ bzero((caddr_t)oia, sizeof(*oia));
if (ia = ns_ifaddr) {
for ( ; ia->ia_next; ia = ia->ia_next)
;
if (ia = ns_ifaddr) {
for ( ; ia->ia_next; ia = ia->ia_next)
;
- ia->ia_next =
mtod(m, struct ns_ifaddr *)
;
+ ia->ia_next =
oia
;
} else
} else
- ns_ifaddr =
mtod(m, struct ns_ifaddr *)
;
- ia =
mtod(m, struct ns_ifaddr *)
;
+ ns_ifaddr =
oia
;
+ ia =
oia
;
if (ifa = ifp->if_addrlist) {
for ( ; ifa->ifa_next; ifa = ifa->ifa_next)
;
if (ifa = ifp->if_addrlist) {
for ( ; ifa->ifa_next; ifa = ifa->ifa_next)
;
@@
-182,7
+181,7
@@
ns_control(so, cmd, data, ifp)
else
printf("Didn't unlink nsifadr from list\n");
}
else
printf("Didn't unlink nsifadr from list\n");
}
-
(void) m_free(dtom(oi
a));
+
IFAFREE((&oia->ia_if
a));
if (0 == --ns_interfaces) {
/*
* We reset to virginity and start all over again
if (0 == --ns_interfaces) {
/*
* We reset to virginity and start all over again
@@
-292,6
+291,7
@@
ns_ifinit(ifp, ia, sns, scrub)
splx(s);
return (EINVAL);
}
splx(s);
return (EINVAL);
}
+ ia->ia_ifa.ifa_metric = ifp->if_metric;
/*
* Add route for the network.
*/
/*
* Add route for the network.
*/
@@
-303,7
+303,7
@@
ns_ifinit(ifp, ia, sns, scrub)
if (ifp->if_flags & IFF_POINTOPOINT)
rtinit(&(ia->ia_ifa), (int)RTM_ADD, RTF_HOST|RTF_UP);
else {
if (ifp->if_flags & IFF_POINTOPOINT)
rtinit(&(ia->ia_ifa), (int)RTM_ADD, RTF_HOST|RTF_UP);
else {
- ia->ia_broadaddr.sns_addr.x_net = ia->ia_net;
+ ia->ia_broadaddr.sns_addr.x_net = ia->ia_
addr.sns_addr.x_
net;
rtinit(&(ia->ia_ifa), (int)RTM_ADD, RTF_UP);
}
ia->ia_flags |= IFA_ROUTE;
rtinit(&(ia->ia_ifa), (int)RTM_ADD, RTF_UP);
}
ia->ia_flags |= IFA_ROUTE;
@@
-329,10
+329,10
@@
ns_iaonnetof(dst)
compare = &satons_addr(ia->ia_dstaddr);
if (ns_hosteq(*dst, *compare))
return (ia);
compare = &satons_addr(ia->ia_dstaddr);
if (ns_hosteq(*dst, *compare))
return (ia);
- if (ns_neteqnn(net, ia->ia_net))
+ if (ns_neteqnn(net, ia->ia_
addr.sns_addr.x_
net))
ia_maybe = ia;
} else {
ia_maybe = ia;
} else {
- if (ns_neteqnn(net, ia->ia_net))
+ if (ns_neteqnn(net, ia->ia_
addr.sns_addr.x_
net))
return (ia);
}
}
return (ia);
}
}