aboutsummaryrefslogtreecommitdiffstats
path: root/lib/libtle_l4p/syncookie.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libtle_l4p/syncookie.h')
-rw-r--r--lib/libtle_l4p/syncookie.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/libtle_l4p/syncookie.h b/lib/libtle_l4p/syncookie.h
index 6d4372d..2588171 100644
--- a/lib/libtle_l4p/syncookie.h
+++ b/lib/libtle_l4p/syncookie.h
@@ -20,7 +20,7 @@
#include "tcp_misc.h"
#include <tle_ctx.h>
-#include <halfsiphash.h>
+#include "halfsiphash.h"
#ifdef __cplusplus
extern "C" {
@@ -184,8 +184,7 @@ fill_tcb_rcv(struct tcb *tcb, uint32_t seq, uint32_t wscale,
tcb->rcv.nxt = seq;
tcb->rcv.irs = seq - 1;
tcb->rcv.ts = to->val;
- tcb->rcv.wscale = (wscale == TCP_WSCALE_NONE) ?
- TCP_WSCALE_NONE : TCP_WSCALE_DEFAULT;
+ tcb->rcv.wscale = wscale;
}
static inline void
@@ -219,6 +218,10 @@ sync_fill_tcb(struct tcb *tcb, const union seg_info *si,
wscale = to->ecr & SYNC_TMS_WSCALE_MASK;
fill_tcb_snd(tcb, seq, ack, mss, si->wnd, wscale, to);
+
+ wscale = ((to->ecr & SYNC_TMS_WSCALE_MASK) == TCP_WSCALE_NONE) ?
+ TCP_WSCALE_NONE : TCP_WSCALE_DEFAULT;
+
fill_tcb_rcv(tcb, seq, wscale, to);
tcb->so.mss = mss;