From c9b41fc461c3177ba610b9d2fab8f18b6530367b Mon Sep 17 00:00:00 2001 From: pk910 Date: Tue, 26 Jul 2011 10:32:29 +0200 Subject: [PATCH] added recv_server_quit and recv_quit --- Uplink/P10_Server.class.php | 10 ++++++++++ Uplink/Uplink.class.php | 26 +++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/Uplink/P10_Server.class.php b/Uplink/P10_Server.class.php index f36bbea..207b663 100644 --- a/Uplink/P10_Server.class.php +++ b/Uplink/P10_Server.class.php @@ -77,6 +77,16 @@ class P10_Server { return NULL; } + public static getServerByName($name) { + $name = strtolower($name); + foreach(self::$static_servers as $server) { + if(strtolower($server->getName()) == $name) { + return $server; + } + } + return NULL; + } + private $name; private $numeric; 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 * ********************************************************************************************/ -- 2.20.1