exception crash avoidance fixes

This commit is contained in:
kremsy 2017-02-11 23:26:28 +01:00
parent a35835e1f6
commit f44f56a5dc
3 changed files with 22 additions and 3 deletions

View File

@ -20,6 +20,7 @@ use ManiaControl\Communication\CommunicationMethods;
use ManiaControl\Logger;
use ManiaControl\ManiaControl;
use ManiaControl\Players\Player;
use Maniaplanet\DedicatedServer\Xmlrpc\FaultException;
use Maniaplanet\DedicatedServer\Xmlrpc\GameModeException;
/**
@ -345,7 +346,12 @@ class ScriptSettings implements ConfiguratorMenu, CallbackListener, Communicatio
return true;
}
$this->maniaControl->getClient()->setModeScriptSettings($newSettings);
try {
$this->maniaControl->getClient()->setModeScriptSettings($newSettings);
} catch (FaultException $e) {
return false;
}
// Save Settings into Database
$mysqli = $this->maniaControl->getDatabase()->getMysqli();
@ -380,8 +386,6 @@ class ScriptSettings implements ConfiguratorMenu, CallbackListener, Communicatio
}
// Add To Database
$settingName = $setting;
$settingValue = $value;
$statement->execute();
if ($statement->error) {
trigger_error($statement->error);

View File

@ -8,10 +8,12 @@ use FML\Controls\Labels\Label_Text;
use FML\ManiaLink;
use ManiaControl\Callbacks\CallbackListener;
use ManiaControl\Callbacks\CallbackManager;
use ManiaControl\Logger;
use ManiaControl\ManiaControl;
use ManiaControl\Players\Player;
use Maniaplanet\DedicatedServer\Xmlrpc\FaultException;
use Maniaplanet\DedicatedServer\Xmlrpc\GameModeException;
use Maniaplanet\DedicatedServer\Xmlrpc\MessageException;
use Maniaplanet\DedicatedServer\Xmlrpc\UnknownPlayerException;
/**
@ -266,6 +268,9 @@ class ManialinkManager implements ManialinkPageAnswerListener, CallbackListener
//TODO added 17.01.2015, remove later:
$this->maniaControl->getErrorHandler()->triggerDebugNotice("Fault Exception: ManiaLink Manager, Message: " . $e->getMessage());
return false;
} catch (MessageException $e) {
//TODO verify why this can happen
Logger::logError("Request too large during opening Directory Browser");
}
return true;

View File

@ -258,6 +258,11 @@ class PlayerActions implements EchoListener, CommunicationListener {
$this->maniaControl->getChat()->sendException($exception, $admin);
}
return false;
} catch (UnknownPlayerException $exception) {
if ($calledByAdmin) {
$this->maniaControl->getChat()->sendException($exception, $admin);
}
return false;
}
if ($userIsAbleToSelect) {
@ -555,6 +560,11 @@ class PlayerActions implements EchoListener, CommunicationListener {
$this->maniaControl->getChat()->sendException($e, $admin);
}
return false;
} catch (UnknownPlayerException $e) { //TODO check why it's actually needed, but there was a crash at this place
if ($calledByAdmin) {
$this->maniaControl->getChat()->sendException($e, $admin);
}
return false;
}
} else {
try {