Yes, you are absolutely right.
If ethereal has confirmed and seen that the SYN-ACK did not contain
any window scaling then it should spill this fact over to the other
direction of the session and negate the ws option it picked up in the
SYN packet.
I agree it is a bug.
I can look at fixing this in a few weeks time. Should not be too hard to fix.
Do you have example capture with this to share so i can test that it
seems to work?
On Fri, 30 Jul 2004 08:00:38 +0200, Markus Rehbach >
> RFC1323 states:
>
> This option is an offer, not a promise; both sides must send
> Window Scale options in their SYN segments to enable window
> scaling in either direction. If window scaling is enabled,
> then the TCP that sent this option will right-shift its true
> receive-window values by 'shift.cnt' bits for transmission in
> SEG.WND. The value 'shift.cnt' may be zero (offering to scale,
> while applying a scale factor of 1 to the receive window)
>
> That's why I'm sure that the missing WS= in the syn/ack-Packet
> will disable the window scaling completely for this session and
> should not been calculated for the 3rd packet below.
>
> Cheers
>
> Markus