summaryrefslogtreecommitdiff
path: root/sys/net
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2009-11-13 20:54:06 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2009-11-13 20:54:06 +0000
commita49dcb067ccc0d0288291f437054538b34b31dcf (patch)
tree0579937c1bf07d3bb795d722753a4f295db15530 /sys/net
parent750113cd50e6e0756d40eaf9d929ace22ff84a05 (diff)
Extend the protosw pr_ctlinput function to include the rdomain. This is
needed so that the route and inp lookups done in TCP and UDP know where to look. Additionally in_pcbnotifyall() and tcp_respond() got a rdomain argument as well for similar reasons. With this tcp seems to be now fully rdomain save and no longer leaks single packets into the main domain. Looks good markus@, henning@
Diffstat (limited to 'sys/net')
-rw-r--r--sys/net/raw_cb.h4
-rw-r--r--sys/net/raw_usrreq.c5
2 files changed, 5 insertions, 4 deletions
diff --git a/sys/net/raw_cb.h b/sys/net/raw_cb.h
index 448607a77d2..39040cbdeb1 100644
--- a/sys/net/raw_cb.h
+++ b/sys/net/raw_cb.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: raw_cb.h,v 1.7 2008/05/23 15:51:12 thib Exp $ */
+/* $OpenBSD: raw_cb.h,v 1.8 2009/11/13 20:54:05 claudio Exp $ */
/* $NetBSD: raw_cb.h,v 1.9 1996/02/13 22:00:41 christos Exp $ */
/*
@@ -59,7 +59,7 @@ struct rawcb {
extern LIST_HEAD(rawcbhead, rawcb) rawcb; /* head of list */
int raw_attach(struct socket *, int);
-void *raw_ctlinput(int, struct sockaddr *, void *);
+void *raw_ctlinput(int, struct sockaddr *, u_int, void *);
void raw_detach(struct rawcb *);
void raw_disconnect(struct rawcb *);
void raw_init(void);
diff --git a/sys/net/raw_usrreq.c b/sys/net/raw_usrreq.c
index 2df21ab09c1..b9cbdb5f7b1 100644
--- a/sys/net/raw_usrreq.c
+++ b/sys/net/raw_usrreq.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: raw_usrreq.c,v 1.11 2008/05/23 15:51:12 thib Exp $ */
+/* $OpenBSD: raw_usrreq.c,v 1.12 2009/11/13 20:54:05 claudio Exp $ */
/* $NetBSD: raw_usrreq.c,v 1.11 1996/02/13 22:00:43 christos Exp $ */
/*
@@ -133,9 +133,10 @@ raw_input(struct mbuf *m0, ...)
/*ARGSUSED*/
void *
-raw_ctlinput(cmd, arg, d)
+raw_ctlinput(cmd, arg, rdomain, d)
int cmd;
struct sockaddr *arg;
+ u_int rdomain;
void *d;
{