XMPP daemon that doesn't eat messages - note change to XMPPHP as well (Ticket #551)
darcs-hash:20080826200057-f6e2c-fb9a88251d034824218d20b3fefcde96ddaef827.gz
This commit is contained in:
parent
28ed510854
commit
b6d67b06d4
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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));
|
||||
|
Loading…
Reference in New Issue
Block a user