summaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_var.h
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2009-08-10 10:13:44 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2009-08-10 10:13:44 +0000
commit34976c01cab993d159f52fc4e6c0cfd8d6d22086 (patch)
treef3afbb8163af4c46edd629c36706285594559cb6 /sys/netinet/tcp_var.h
parent0730d5fb08fdb0f7d488d3a79bf4e43ead83d960 (diff)
sockets created via a listening socket lose the rdomain and fail to work
therefore. Inherit the rdomain through the syncache. There are some interactions that need some more work (ctlinput) so this can be improved but is good enough for now. OK markus@
Diffstat (limited to 'sys/netinet/tcp_var.h')
-rw-r--r--sys/netinet/tcp_var.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h
index 4fa1bda8c61..090ba4f6d3e 100644
--- a/sys/netinet/tcp_var.h
+++ b/sys/netinet/tcp_var.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: tcp_var.h,v 1.91 2009/06/05 00:05:22 claudio Exp $ */
+/* $OpenBSD: tcp_var.h,v 1.92 2009/08/10 10:13:43 claudio Exp $ */
/* $NetBSD: tcp_var.h,v 1.17 1996/02/13 23:44:24 christos Exp $ */
/*
@@ -274,6 +274,7 @@ struct syn_cache {
union syn_cache_sa sc_dst;
tcp_seq sc_irs;
tcp_seq sc_iss;
+ u_int sc_rdomain;
u_int sc_rxtcur; /* current rxt timeout */
u_int sc_rxttot; /* total time spend on queues */
u_short sc_rxtshift; /* for computing backoff */
@@ -628,16 +629,16 @@ int syn_cache_add(struct sockaddr *, struct sockaddr *,
struct tcphdr *, unsigned int, struct socket *,
struct mbuf *, u_char *, int, struct tcp_opt_info *, tcp_seq *);
void syn_cache_unreach(struct sockaddr *, struct sockaddr *,
- struct tcphdr *);
+ struct tcphdr *, u_int);
struct socket *syn_cache_get(struct sockaddr *, struct sockaddr *,
struct tcphdr *, unsigned int, unsigned int,
struct socket *so, struct mbuf *);
void syn_cache_init(void);
void syn_cache_insert(struct syn_cache *, struct tcpcb *);
struct syn_cache *syn_cache_lookup(struct sockaddr *, struct sockaddr *,
- struct syn_cache_head **);
+ struct syn_cache_head **, u_int);
void syn_cache_reset(struct sockaddr *, struct sockaddr *,
- struct tcphdr *);
+ struct tcphdr *, u_int);
int syn_cache_respond(struct syn_cache *, struct mbuf *);
void syn_cache_timer(void *);
void syn_cache_cleanup(struct tcpcb *);