private function handleStanza(Stanza $stanza) { if (!in_array($name = $stanza->name(), array('stream:error', 'handshake'))) { $this->log("got <{$name}> from {$stanza->from()} to {$stanza->to()}", PHP_COMPONENT_MESSAGE_INFO, true); } if (!is_callable(@$this->handlers[$stanza->name()])) { if ($stanza->name() == 'iq') { return $this->handleIQ($stanza); } $this->log('no handler for stanza: ' . $stanza->name(), PHP_COMPONENT_MESSAGE_WARNING, true); } else { if (!is_null($this->file_handler) && $stanza->name() == 'message' && $stanza->tag()->hasChild('data')) { return $this->handleFileChunk($stanza); } return call_user_func($this->handlers[$stanza->name()], $stanza); } }