Added some debug for raw packets and Query handling

This commit is contained in:
Dylan K. Taylor 2018-07-13 10:07:11 +01:00
parent ebbbc581ca
commit 65e44364e5
2 changed files with 12 additions and 1 deletions

View File

@ -2471,6 +2471,8 @@ class Server{
try{ try{
if(strlen($payload) > 2 and substr($payload, 0, 2) === "\xfe\xfd" and $this->queryHandler instanceof QueryHandler){ if(strlen($payload) > 2 and substr($payload, 0, 2) === "\xfe\xfd" and $this->queryHandler instanceof QueryHandler){
$this->queryHandler->handle($interface, $address, $port, $payload); $this->queryHandler->handle($interface, $address, $port, $payload);
}else{
$this->logger->debug("Unhandled raw packet from $address $port: " . bin2hex($payload));
} }
}catch(\Throwable $e){ }catch(\Throwable $e){
if(\pocketmine\DEBUG > 1){ if(\pocketmine\DEBUG > 1){

View File

@ -58,6 +58,11 @@ class QueryHandler{
$this->server->getLogger()->info($this->server->getLanguage()->translateString("pocketmine.server.query.running", [$addr, $port])); $this->server->getLogger()->info($this->server->getLanguage()->translateString("pocketmine.server.query.running", [$addr, $port]));
} }
private function debug(string $message) : void{
//TODO: replace this with a proper prefixed logger
$this->server->getLogger()->debug("[Query] $message");
}
public function regenerateInfo(){ public function regenerateInfo(){
$ev = $this->server->getQueryInformation(); $ev = $this->server->getQueryInformation();
$this->longData = $ev->getLongQuery(); $this->longData = $ev->getLongQuery();
@ -91,7 +96,8 @@ class QueryHandler{
break; break;
case self::STATISTICS: //Stat case self::STATISTICS: //Stat
$token = Binary::readInt(substr($payload, 0, 4)); $token = Binary::readInt(substr($payload, 0, 4));
if($token !== self::getTokenString($this->token, $address) and $token !== self::getTokenString($this->lastToken, $address)){ if($token !== ($t1 = self::getTokenString($this->token, $address)) and $token !== ($t2 = self::getTokenString($this->lastToken, $address))){
$this->debug("Bad token $token from $address $port, expected $t1 or $t2");
break; break;
} }
$reply = chr(self::STATISTICS); $reply = chr(self::STATISTICS);
@ -108,6 +114,9 @@ class QueryHandler{
} }
$interface->sendRawPacket($address, $port, $reply); $interface->sendRawPacket($address, $port, $reply);
break; break;
default:
$this->debug("Unhandled packet from $address $port: 0x" . bin2hex($packet));
break;
} }
} }
} }