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 *
********************************************************************************************/