Hi all,
I was implementing mccp in my mud, and I've got it mostly working. Now the only problem is restarting mccp on copyover/hotreboot. I have the flag for mccp saving in the copyover file, but there is an error in most mud clients that support mccp I've tried, even before the copyover happens.
Basically what happens is this:
1. someone initiates a copyover.
2. the mud turns off the compression for each player that has it on, and saves that data, along with any other necessary data, into the copyover file.
3. The mud reboots, and reads in the data for each player.
4. The mud turns back on compression for those that support it.
The only problem here is at steps 2 and 4. At 2, the mud successfully turns off the compression, at least according to tt++, but then any client I've tried that supports compression says there's a compression error even before the mud reboots and turns back on compression.
At 4, the mud turns back on compression so in the case of tt++ or any other client that doesn't immediately kick you off after a compression error shows jibberish. On mushclient, it shows an error, compression error, invalid header check, and then kicks you off.
But, my mud seems to be successfully turning off mccp because:
It sends the data 'mccp disabled' with the z_finish flag with zlib, and mushclient gets that fine, and sends it to the player.
Then the next data is uncompressed, but this is where mushclient says compression error, even though the data is not compressed. In tintin++ it says compression error right before the line 'copyover initiated by xxx', which is not compressed, but it seems to think it is.
Anyone know what could be going on here?
Thanks,
-Michael. |