DJabberd

 view release on metacpan or  search on metacpan

doc/TODO  view on Meta::CPAN

-- SIG USR1 to do graceful shutdown, sending </stream:stream> to all clients.

-- speed up XMLElement as_xml ... try to reuse the original scalarref
   read from the network, if
   we can align the boundaries of XML stanzas to network reads, as we do reusing parsers from libxml

-- speed up:  when sending a ton of broadcast packets, only stringify it once (before/after to address)
   and then blast away at everybody.  works well on a single node, at least.

-- TODO: resource binding?

-- TODO: IQ commands to server to get server load info:
    o #/which connected users
    o #/which connected s2s
    o RAM
    o uptime
    o CPU user/system time

-- shouldn't allow auth with no resource

-- should send a 503 error here on bogus/unsupported IQ:

       4 < <iq id='SgSeu-6' type='get'><query xmlns='jabber:iq:anything'/></iq> INFO  DJabberd.Connection.XML.ClientIn         <iq  to='user0@jabber.bradfitz.com/Smack' type='error' id='SgSeu-6'></iq> WARN  DJabberd.IQ                              Un...


-- presence priority

-- allow a fast path when bulk sending tons of messages (like hundreds of unavailable stanzas
   on disconnect):  allow a means to, given a set of full/bare (at least bare) JIDs, filter out
   the ones to be known not available.  (for instance, local/cluster
   ones, where we're the authority on their presence).

-- can we reuse s2s connections in both directions?  Our code doesn't, but worse,
   I don't think it'd even allow other people to try and do it to us.  What does spec say?

-- s2s and client timeouts

-- cleanup/unifiy callbacks.... error vs. fail, on_data vs set vs loaded, etc...
  give them types?

-- debian install guide.

-- debian packaging

-- $stanza->process and $stanza->deliver take a $conn, but
   now that stanzas always know their connection, that
   parameter is kinda useless.  remove them all?
     -- actually, we should also store a non-weak vhost ref
        in stanzas, then use that for delivery/etc, since
        conn as a weakref can go away if client disconnects
        and we may still want to process/deliver.

-- Jingle/Asterisk stuff:

   This Jabber client supports Jingle:
     http://www.kismith.co.uk/wordpress/index.php/2005/12/16/i-say-i-say-i-say-did-you-hear-the-one-about/
     http://psi-im.org/wiki/Jingle_branch
   So think we could do the Jingle stuff Jabber-server-side and get the Psi
   client connecting to Asterisk over SIP or something?

-- <not-authorized/> -- the sender must provide proper credentials
      before being allowed to perform the action, or has provided
      improper credentials; the associated error type SHOULD be "auth".   no error currently gets sent on non AUTH

-- need to write some tests for components

-- need a better API for components so they aren't so ugly. maybe just a nice subclass?

-- make Component subclass that implements JEP-0114

-- privsep for security and scalability

-- network read eval should do something different on xml versus perl errors
        maybe another eval around callbacks that cleans up the callback and then propagates
        separate logfile for our errors versus client errors

-- timer that runs every x seconds cleaning up an array of weakrefs to callbacks that are still active
        and then put the callback start time in the object, so we can force clean up of callbacks

-- SASL doesn't support ANONYMOUS or EXTERNAL



( run in 1.020 second using v1.01-cache-2.11-cpan-39bf76dae61 )