Ankoku / df-webfort

Web Fortress
ISC License
35 stars 10 forks source link

Certain people who connect cause the new version to freeze. #19

Closed Theholysonchrist closed 9 years ago

Theholysonchrist commented 9 years ago

As the title states, when certain people join the webfort the plugin will simply freeze requiring DF to be restarted. This doesn't happen with everyone but it has only happened since the latest update.

Alloyed commented 9 years ago

So, after a bit of srs network debugging, I'm just going to blame that guy's ISP. Somewhere along the line, they were mangling the handshake packets, and then libnopoll (which is a blocking library) just sat around trying to figure out what exactly what was going on there. Following the advice given by

http://lucumr.pocoo.org/2012/9/24/websockets-101/

there are two options:

  1. Require SSL. As nice as that would be, it severely limits the number of people that can host a webfort server. Chrome drops self-signed websockets immediately, without asking.
  2. Get a stricter websocket library. wslay looks good to me, in that it's nonblocking and passes a test suite.

Both are harder than just telling that guy he can't connect to webfort for the time being.