diff --git a/src/danog/MadelineProto/MTProtoTools/ResponseHandler.php b/src/danog/MadelineProto/MTProtoTools/ResponseHandler.php index 5f0b4a9a..ebd720ed 100644 --- a/src/danog/MadelineProto/MTProtoTools/ResponseHandler.php +++ b/src/danog/MadelineProto/MTProtoTools/ResponseHandler.php @@ -65,19 +65,19 @@ trait ResponseHandler } switch ($this->datacenter->sockets[$datacenter]->incoming_messages[$current_msg_id]['content']['_']) { case 'msgs_ack': + unset($this->datacenter->sockets[$datacenter]->new_incoming[$current_msg_id]); $this->check_in_seq_no($datacenter, $current_msg_id); $only_updates = false; foreach ($this->datacenter->sockets[$datacenter]->incoming_messages[$current_msg_id]['content']['msg_ids'] as $msg_id) { $this->ack_outgoing_message_id($msg_id, $datacenter); // Acknowledge that the server received my message } - unset($this->datacenter->sockets[$datacenter]->new_incoming[$current_msg_id]); break; case 'rpc_result': - $this->ack_incoming_message_id($current_msg_id, $datacenter); // Acknowledge that I received the server's response - $this->ack_outgoing_message_id($this->datacenter->sockets[$datacenter]->incoming_messages[$current_msg_id]['content']['req_msg_id'], $datacenter); // Acknowledge that the server received my request unset($this->datacenter->sockets[$datacenter]->new_incoming[$current_msg_id]); unset($this->datacenter->sockets[$datacenter]->new_outgoing[$this->datacenter->sockets[$datacenter]->incoming_messages[$current_msg_id]['content']['req_msg_id']]); + $this->ack_incoming_message_id($current_msg_id, $datacenter); // Acknowledge that I received the server's response + $this->ack_outgoing_message_id($this->datacenter->sockets[$datacenter]->incoming_messages[$current_msg_id]['content']['req_msg_id'], $datacenter); // Acknowledge that the server received my request $this->datacenter->sockets[$datacenter]->outgoing_messages[$this->datacenter->sockets[$datacenter]->incoming_messages[$current_msg_id]['content']['req_msg_id']]['response'] = $current_msg_id; //švar_dump($this->datacenter->sockets[$datacenter]->incoming_messages[$current_msg_id]); $this->datacenter->sockets[$datacenter]->incoming_messages[$current_msg_id]['content'] = $this->datacenter->sockets[$datacenter]->incoming_messages[$current_msg_id]['content']['result']; @@ -90,12 +90,12 @@ trait ResponseHandler $only_updates = false; break; case 'future_salts': + unset($this->datacenter->sockets[$datacenter]->new_incoming[$current_msg_id]); + unset($this->datacenter->sockets[$datacenter]->new_outgoing[$this->datacenter->sockets[$datacenter]->incoming_messages[$current_msg_id]['content']['req_msg_id']]); $this->check_in_seq_no($datacenter, $current_msg_id); $only_updates = false; $this->ack_outgoing_message_id($this->datacenter->sockets[$datacenter]->incoming_messages[$current_msg_id]['content']['req_msg_id'], $datacenter); // Acknowledge that the server received my request $this->datacenter->sockets[$datacenter]->outgoing_messages[$this->datacenter->sockets[$datacenter]->incoming_messages[$current_msg_id]['content']['req_msg_id']]['response'] = $current_msg_id; - unset($this->datacenter->sockets[$datacenter]->new_incoming[$current_msg_id]); - unset($this->datacenter->sockets[$datacenter]->new_outgoing[$this->datacenter->sockets[$datacenter]->incoming_messages[$current_msg_id]['content']['req_msg_id']]); break; /* case 'rpc_error': @@ -133,11 +133,11 @@ trait ResponseHandler $this->check_in_seq_no($datacenter, $current_msg_id); $only_updates = false; $this->datacenter->sockets[$datacenter]->temp_auth_key['server_salt'] = $this->datacenter->sockets[$datacenter]->incoming_messages[$current_msg_id]['content']['server_salt']; + unset($this->datacenter->sockets[$datacenter]->new_incoming[$current_msg_id]); $this->ack_incoming_message_id($current_msg_id, $datacenter); // Acknowledge that I received the server's response if ($this->authorized === self::LOGGED_IN && !$this->initing_authorization && $this->datacenter->sockets[$this->datacenter->curdc]->temp_auth_key !== null) { $this->force_get_updates_difference(); } - unset($this->datacenter->sockets[$datacenter]->new_incoming[$current_msg_id]); $unset = true; break; case 'msg_container':