The problem occurred in Heretic E5M5, which is a large map with plenty of moving mobjs. netBuffer was not large enough to accommodate all the deltas, so it overflowed and rewrote other variables, including isClient. Thus the server started thinking it was a client and stopped generating deltas or checking incoming messages…
Now netBuffer has enough room to over the maximum packet size. A better implementation would not write the deltas directly to netBuffer, but to a dynamically sized temporary buffer.
Server: Fixed network message write buffer overflow
The problem occurred in Heretic E5M5, which is a large map
with plenty of moving mobjs. netBuffer was not large
enough to accommodate all the deltas, so it overflowed
and rewrote other variables, including isClient. Thus the
server started thinking it was a client and stopped generating
deltas or checking incoming messages…
Now netBuffer has enough room to over the maximum
packet size. A better implementation would not write the
deltas directly to netBuffer, but to a dynamically sized
temporary buffer.