Properly handle Query packet errors

This commit is contained in:
Dylan K. Taylor
2019-01-17 22:22:53 +00:00
parent 38cf8d157d
commit 2dee7e9e0f
2 changed files with 56 additions and 46 deletions

View File

@@ -2118,16 +2118,8 @@ class Server{
* TODO: move this to Network
*/
public function handlePacket(AdvancedNetworkInterface $interface, string $address, int $port, string $payload){
try{
if(strlen($payload) > 2 and substr($payload, 0, 2) === "\xfe\xfd" and $this->queryHandler instanceof QueryHandler){
$this->queryHandler->handle($interface, $address, $port, $payload);
}else{
$this->logger->debug("Unhandled raw packet from $address $port: " . bin2hex($payload));
}
}catch(\Throwable $e){
$this->logger->logException($e);
$this->getNetwork()->blockAddress($address, 600);
if($this->queryHandler === null or !$this->queryHandler->handle($interface, $address, $port, $payload)){
$this->logger->debug("Unhandled raw packet from $address $port: " . bin2hex($payload));
}
//TODO: add raw packet events
}