diff options
author | Claudio Jeker <claudio@cvs.openbsd.org> | 2009-11-13 20:54:06 +0000 |
---|---|---|
committer | Claudio Jeker <claudio@cvs.openbsd.org> | 2009-11-13 20:54:06 +0000 |
commit | a49dcb067ccc0d0288291f437054538b34b31dcf (patch) | |
tree | 0579937c1bf07d3bb795d722753a4f295db15530 /sys/net | |
parent | 750113cd50e6e0756d40eaf9d929ace22ff84a05 (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.h | 4 | ||||
-rw-r--r-- | sys/net/raw_usrreq.c | 5 |
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; { |