aboutsummaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2003-08-21 18:21:22 +0000
committerRobert Watson <rwatson@FreeBSD.org>2003-08-21 18:21:22 +0000
commiteb8c7f999290d0cd203ab601aa1ebe613a7822ff (patch)
tree269bdd075acbd16f8db9b0379a3518d07ca3cd76 /sys/kern
parent69d1b638df93b52d502ff77a5a5318b4e024188e (diff)
downloadsrc-eb8c7f999290d0cd203ab601aa1ebe613a7822ff.tar.gz
src-eb8c7f999290d0cd203ab601aa1ebe613a7822ff.zip
Introduce two new MAC Framework and MAC policy entry points:
mac_reflect_mbuf_icmp() mac_reflect_mbuf_tcp() These entry points permit MAC policies to do "update in place" changes to the labels on ICMP and TCP mbuf headers when an ICMP or TCP response is generated to a packet outside of the context of an existing socket. For example, in respond to a ping or a RST packet to a SYN on a closed port. Obtained from: TrustedBSD Project Sponsored by: DARPA, Network Associates Laboratories
Notes
Notes: svn path=/head/; revision=119244
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_mac.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/sys/kern/kern_mac.c b/sys/kern/kern_mac.c
index dcd883151556..490b492f1b86 100644
--- a/sys/kern/kern_mac.c
+++ b/sys/kern/kern_mac.c
@@ -2398,6 +2398,25 @@ mac_fragment_match(struct mbuf *fragment, struct ipq *ipq)
}
void
+mac_reflect_mbuf_icmp(struct mbuf *m)
+{
+ struct label *label;
+
+ label = mbuf_to_label(m);
+
+ MAC_PERFORM(reflect_mbuf_icmp, m, label);
+}
+void
+mac_reflect_mbuf_tcp(struct mbuf *m)
+{
+ struct label *label;
+
+ label = mbuf_to_label(m);
+
+ MAC_PERFORM(reflect_mbuf_tcp, m, label);
+}
+
+void
mac_update_ipq(struct mbuf *fragment, struct ipq *ipq)
{
struct label *label;