From b6d67b06d45d4fd783e91b1b1aeb17501c6df871 Mon Sep 17 00:00:00 2001 From: CiaranG Date: Tue, 26 Aug 2008 16:00:57 -0400 Subject: [PATCH] XMPP daemon that doesn't eat messages - note change to XMPPHP as well (Ticket #551) darcs-hash:20080826200057-f6e2c-fb9a88251d034824218d20b3fefcde96ddaef827.gz --- extlib/XMPPHP/XMLStream.php | 3 ++- scripts/xmppdaemon.php | 29 +++-------------------------- 2 files changed, 5 insertions(+), 27 deletions(-) diff --git a/extlib/XMPPHP/XMLStream.php b/extlib/XMPPHP/XMLStream.php index 4de23ef7fb..2ed2f5e029 100644 --- a/extlib/XMPPHP/XMLStream.php +++ b/extlib/XMPPHP/XMLStream.php @@ -242,7 +242,7 @@ class XMPPHP_XMLStream { * @param string $obj */ public function addEventHandler($name, $pointer, $obj) { - $this->eventhandlers[] = array($name, $pointer, $obj); + $this->eventhanders[] = array($name, $pointer, $obj); } /** @@ -521,6 +521,7 @@ class XMPPHP_XMLStream { if($handler[2] === null) { $handler[2] = $this; } + $this->log->log("Calling {$handler[1]}", XMPPHP_Log::LEVEL_DEBUG); $handler[2]->$handler[1]($payload); } } diff --git a/scripts/xmppdaemon.php b/scripts/xmppdaemon.php index 07b8d24e55..c15f281131 100755 --- a/scripts/xmppdaemon.php +++ b/scripts/xmppdaemon.php @@ -96,39 +96,16 @@ class XMPPDaemon { function handle() { - static $parts = array('message', 'presence', - 'end_stream', 'session_start'); - + $this->conn->addEventHandler('message','handle_message',$this); + $this->conn->addEventHandler('presence','handle_presence',$this); while(!$this->conn->isDisconnected()) { - $payloads = $this->conn->processUntil($parts, 10); - - if ($payloads) { - foreach($payloads as $event) { - $pl = $event[1]; - switch($event[0]) { - case 'message': - $this->handle_message($pl); - break; - case 'presence': - $this->handle_presence($pl); - break; - case 'session_start': - $this->handle_session($pl); - break; - } - } - } - + $this->conn->processTime(10); $this->broadcast_queue(); $this->confirmation_queue(); } } - function handle_session($pl) { - # XXX what to do here? - return true; - } function get_user($from) { $user = User::staticGet('jabber', jabber_normalize_jid($from));