Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: dublication bug



andi.vogl@gmx.net wrote:
> 
> Hi everyone,

> The best way of course would be to prevent any possibility for a player
> to crash the cf-server intentionally. Unfortunatly, I believe this is
> impossible. There are hundreds of different ways to crash the server -
> most people are actually crashing their client to bring the server down.
> And one can never prevent players from using crashable clients.

 The right solution is of course to fix the crashing of the server.  If there
really are hundreds of different ways to crash the server, that is pretty bad. 
I would really guess there are just a few that the players will continually
exploit.

 There is certainly a difference in the server crashing and a player induced
crash.  For the exploits to work, the player must be able to crash the server
when they want, and they can't hope for one of the other crashes that may
happen.

 All server crashes will eventually need to get fixed.  If not for cheating, I
could just see someone do a denial of service attack by crashing the server
every 10 minutes.

 A crashing client should not harm the server.  The design of the client &
server was to not trust clients with any extra information, and I would go with
that that instable/badly written clients should not harm the server either.


> - Characters should get saved automatically every time they apply an
>   exit and change maps. That would prevent usage of version 1 of the bug.

 This probably is not all that harmful - unfortunately, it might make the delay
of loading the new map slightly longer.

> 
> - If one character saves on a map, all other players on the same map
>   must get saved too. I know this sounds a bit nasty, but I cannot
>   think of another way to prevent usage of bug version 2.

 I don't know if this is really good if there are lots of players on the map.

> 
> Fortunately, saving a char takes no time, so it shouldn´t be a
> disadvantage if players get saved more often. These new saving-rules
> could help to fix the `checkpoints issue´ as well (what happens to
> players after a crash?). If players should wake up at certain
> checkpoints after a crash, it will be necessary to save them at least
> once they enter a new map anyway.

 Saving a player certainly takes some amount of time.  A lot will depending on
your OS disk buffering rules - for some OS's, the write will basically sit in
ram for a little while, while some OS's will more or less force the data to hit
the disk when you close the file, causing some noticable performance.

 I would really wonder if you have 10 players on a map (say the main city), and
one of them decides to do a save constantly how that would effect the game as a
whole (another denial of service?)

 Right now, I'm more concerned with saving in treasure rooms and the like - a
more honest/non destructive cheat if you like (as it still works even if you
can't crash the server).  I would like to get that solved, and then see if that
fixes/addresses either of the two cheats above as side effects.