X-Git-Url: http://git.pk910.de/?p=PHP-P10.git;a=blobdiff_plain;f=Uplink%2FUplink.class.php;h=0095445030321de298caf5bafc0a64d26ef4689c;hp=586f9f665898821def007cda7c40928ec01cdde9;hb=c9b41fc461c3177ba610b9d2fab8f18b6530367b;hpb=3a0a29c5f349896d62e1cb4959bf52037d940c84 diff --git a/Uplink/Uplink.class.php b/Uplink/Uplink.class.php index 586f9f6..0095445 100644 --- a/Uplink/Uplink.class.php +++ b/Uplink/Uplink.class.php @@ -198,6 +198,12 @@ class Uplink { case "EA": $this->recv_end_of_burst_ack($from, $arguments); break; + case "SQ": + $this->recv_server_quit($from, $arguments); + break; + case "Q": + $this->recv_quit($from, $arguments); + break; //default default: //unknown cmd @@ -265,7 +271,7 @@ class Uplink { } private function recv_nick($from, $args) { - if(count($args) == 2) { + if(count($args) <= 2) { //Nick change $user = P10_User::getUserByNum($from); if($user == null) { @@ -308,6 +314,24 @@ class Uplink { //nothing to do here? } + private function recv_server_quit($from, $args) { + $server = P10_Server::getServerByName($args[0]); + if($server == null) { + trigger_error("Server (".$args[0].") not found.", E_USER_ERROR); + return; + } + $server->disconnectServer(); + } + + private function recv_quit($from, $args) { + $user = P10_User::getUserByNum($from); + if($user == null) { + trigger_error("Server tries to quit an user that does not exist or was not found on recv_quit.", E_USER_ERROR); + return; + } + $user->quit($args[0]); + } + /******************************************************************************************** * SERVER FUNCTIONS * ********************************************************************************************/