summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/netatalk/aarp.c8
-rw-r--r--sys/netatalk/ddp_input.c10
-rw-r--r--sys/netatalk/ddp_output.c10
3 files changed, 28 insertions, 0 deletions
diff --git a/sys/netatalk/aarp.c b/sys/netatalk/aarp.c
index 1276624..a22488a 100644
--- a/sys/netatalk/aarp.c
+++ b/sys/netatalk/aarp.c
@@ -6,9 +6,11 @@
*/
#include "opt_atalk.h"
+#include "opt_mac.h"
#include <sys/param.h>
#include <sys/systm.h>
+#include <sys/mac.h>
#include <sys/mbuf.h>
#include <sys/kernel.h>
#include <sys/socket.h>
@@ -128,6 +130,9 @@ aarpwhohas( struct arpcom *ac, struct sockaddr_at *sat )
if (( m = m_gethdr( M_DONTWAIT, MT_DATA )) == NULL ) {
return;
}
+#ifdef MAC
+ mac_create_mbuf_linklayer(&ac->ac_if, m);
+#endif
m->m_len = sizeof( *ea );
m->m_pkthdr.len = sizeof( *ea );
MH_ALIGN( m, sizeof( *ea ));
@@ -549,6 +554,9 @@ aarpprobe( void *arg )
if (( m = m_gethdr( M_DONTWAIT, MT_DATA )) == NULL ) {
return;
}
+#ifdef MAC
+ mac_create_mbuf_linklayer(&ac->ac_if, m);
+#endif
m->m_len = sizeof( *ea );
m->m_pkthdr.len = sizeof( *ea );
MH_ALIGN( m, sizeof( *ea ));
diff --git a/sys/netatalk/ddp_input.c b/sys/netatalk/ddp_input.c
index 4ef497b..6db107f 100644
--- a/sys/netatalk/ddp_input.c
+++ b/sys/netatalk/ddp_input.c
@@ -5,9 +5,12 @@
* $FreeBSD$
*/
+#include "opt_mac.h"
+
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/lock.h>
+#include <sys/mac.h>
#include <sys/mbuf.h>
#include <sys/signalvar.h>
#include <sys/socket.h>
@@ -395,6 +398,13 @@ ddp_input( m, ifp, elh, phase )
return;
}
+#ifdef MAC
+ if (mac_check_socket_deliver(ddp->ddp_socket, m) != 0) {
+ m_freem( m );
+ return;
+ }
+#endif
+
/*
* If we found one, deliver th epacket to the socket
*/
diff --git a/sys/netatalk/ddp_output.c b/sys/netatalk/ddp_output.c
index 3d48fd2..f15914b 100644
--- a/sys/netatalk/ddp_output.c
+++ b/sys/netatalk/ddp_output.c
@@ -23,8 +23,11 @@
/* $FreeBSD$ */
+#include "opt_mac.h"
+
#include <sys/param.h>
#include <sys/systm.h>
+#include <sys/mac.h>
#include <sys/mbuf.h>
#include <sys/socket.h>
#include <sys/socketvar.h>
@@ -48,6 +51,10 @@ ddp_output( struct mbuf *m, struct socket *so)
struct ddpehdr *deh;
struct ddpcb *ddp = sotoddpcb( so );
+#ifdef MAC
+ mac_create_mbuf_from_socket(so, m);
+#endif
+
M_PREPEND( m, sizeof( struct ddpehdr ), M_TRYWAIT );
deh = mtod( m, struct ddpehdr *);
@@ -195,6 +202,9 @@ ddp_route( struct mbuf *m, struct route *ro)
printf("ddp_route: no buffers\n");
return( ENOBUFS );
}
+#ifdef MAC
+ mac_create_mbuf_from_mbuf(m, m0);
+#endif
m0->m_next = m;
/* XXX perhaps we ought to align the header? */
m0->m_len = SZ_ELAPHDR;
OpenPOWER on IntegriCloud