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
|
* @param string $obj
|
||||||
*/
|
*/
|
||||||
public function addEventHandler($name, $pointer, $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) {
|
if($handler[2] === null) {
|
||||||
$handler[2] = $this;
|
$handler[2] = $this;
|
||||||
}
|
}
|
||||||
|
$this->log->log("Calling {$handler[1]}", XMPPHP_Log::LEVEL_DEBUG);
|
||||||
$handler[2]->$handler[1]($payload);
|
$handler[2]->$handler[1]($payload);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -96,39 +96,16 @@ class XMPPDaemon {
|
|||||||
|
|
||||||
function handle() {
|
function handle() {
|
||||||
|
|
||||||
static $parts = array('message', 'presence',
|
$this->conn->addEventHandler('message','handle_message',$this);
|
||||||
'end_stream', 'session_start');
|
$this->conn->addEventHandler('presence','handle_presence',$this);
|
||||||
|
|
||||||
while(!$this->conn->isDisconnected()) {
|
while(!$this->conn->isDisconnected()) {
|
||||||
|
|
||||||
$payloads = $this->conn->processUntil($parts, 10);
|
$this->conn->processTime(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->broadcast_queue();
|
$this->broadcast_queue();
|
||||||
$this->confirmation_queue();
|
$this->confirmation_queue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function handle_session($pl) {
|
|
||||||
# XXX what to do here?
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
function get_user($from) {
|
function get_user($from) {
|
||||||
$user = User::staticGet('jabber', jabber_normalize_jid($from));
|
$user = User::staticGet('jabber', jabber_normalize_jid($from));
|
||||||
|
Loading…
Reference in New Issue
Block a user