[pptp-server] connection dropping after 20-30 minutes - buggy windows client ? [patch]
Matthias Suencksen
msuencks at marcant.de
Wed Feb 14 21:49:08 CST 2001
Hello.
After some extensive debugging I have found the reason for
problems with clients going away after some time.
It seems that at least windows98 and windows98se mess up
the GRE packet header with some packets they send.
"Some" packets means for example after sending 10,000 to
20,000 packets of valid data. Or maybe a router along the way
corrupts the data - which sounds less probable to me.
The corruption that occurs looks like there are 16 bits
of data inserted in various places. The wrong data consists
of bytes like "0000", "005e" or "00bd".
[ According to MSDN, 0x00bd is a Win32 API error: ERROR_INVALID_STACKSEG
:-) .. just speculating .. ]
After removing these two bytes the offending GRE frames look valid but
through this insertion other data in the header is moved to different
(wrong) places.
Nameley the ACK and GRE sequence number and the MPPE coherence-count
can get corrupted.
I've made two patches - one against 1.0.1 ( to rule out
problems which may have been introduced in 1.1.2 ) and one
against the MPPE module. You find them here: http://www.marcant.net/users/ms/pptp.html
They add a layer of robustness especially to the MPPE module.
At least our problems where fixed with them ..
--
Matthias Suencksen
--
Out-of-order Execution
(Feature von modernen Microprozessoren)
More information about the pptp-server
mailing list