diff options
author | Thordur I. Bjornsson <thib@cvs.openbsd.org> | 2008-05-23 15:51:13 +0000 |
---|---|---|
committer | Thordur I. Bjornsson <thib@cvs.openbsd.org> | 2008-05-23 15:51:13 +0000 |
commit | 114f984d932b1f6810293178a80279f30cd2bd27 (patch) | |
tree | 1a1f583d1f42425cfd75dad816a48f3121aff8d0 /sys/netinet/in_pcb.h | |
parent | b9a20684fa94a5082c8e1df0b6f92099a2f7cb63 (diff) |
Deal with the situation when TCP nfs mounts timeout and processes
get hung in nfs_reconnect() because they do not have the proper
privilages to bind to a socket, by adding a struct proc * argument
to sobind() (and the *_usrreq() routines, and finally in{6}_pcbbind)
and do the sobind() with proc0 in nfs_connect.
OK markus@, blambert@.
"go ahead" deraadt@.
Fixes an issue reported by bernd@ (Tested by bernd@).
Fixes PR5135 too.
Diffstat (limited to 'sys/netinet/in_pcb.h')
-rw-r--r-- | sys/netinet/in_pcb.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/netinet/in_pcb.h b/sys/netinet/in_pcb.h index cebbdba4172..194f23585da 100644 --- a/sys/netinet/in_pcb.h +++ b/sys/netinet/in_pcb.h @@ -1,4 +1,4 @@ -/* $OpenBSD: in_pcb.h,v 1.62 2008/05/15 19:40:38 markus Exp $ */ +/* $OpenBSD: in_pcb.h,v 1.63 2008/05/23 15:51:12 thib Exp $ */ /* $NetBSD: in_pcb.h,v 1.14 1996/02/13 23:42:00 christos Exp $ */ /* @@ -240,7 +240,7 @@ struct baddynamicports { void in_losing(struct inpcb *); int in_pcballoc(struct socket *, void *); -int in_pcbbind(void *, struct mbuf *); +int in_pcbbind(void *, struct mbuf *, struct proc *); int in_pcbconnect(void *, struct mbuf *); void in_pcbdetach(void *); void in_pcbdisconnect(void *); @@ -257,7 +257,7 @@ struct inpcb * struct inpcb * in6_pcblookup_listen(struct inpcbtable *, struct in6_addr *, u_int, int, struct mbuf *); -int in6_pcbbind(struct inpcb *, struct mbuf *); +int in6_pcbbind(struct inpcb *, struct mbuf *, struct proc *); int in6_pcbconnect(struct inpcb *, struct mbuf *); int in6_setsockaddr(struct inpcb *, struct mbuf *); int in6_setpeeraddr(struct inpcb *, struct mbuf *); |