diff options
Diffstat (limited to 'lib/libtle_l4p/syncookie.h')
-rw-r--r-- | lib/libtle_l4p/syncookie.h | 9 |
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; |