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;
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
}
private function recv_nick($from, $args) {
- if(count($args) == 2) {
+ if(count($args) <= 2) {
//Nick change
$user = P10_User::getUserByNum($from);
if($user == null) {
//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 *
********************************************************************************************/