| DJabberd Status: bug fixes, and roster flesh-out |
[Apr. 8th, 2006|07:27 pm] |
Lest you thought I'd forgotten about it, I'm back to hacking on DJabberd. But without Artur today.
Today: -- SSL fixed. I'd broken it during earlier refactoring. -- iChat support fixed. it sends whitespace where other clients don't, and I was using the wrong method which wasn't skipping whitespace. -- Roster Add(/Update)/Delete -- but only the place where I call the hooks. haven't updated the SQLite plugin to respond yet. also haven't done global roster pushes yet, which requires a hook phase for inter-node communication. should write a reference implementation of that using Spread.
Actually, that's not much. I'd hoped to finish more, but kept getting distracted. There was also some re-reading of the specs and code to catch back up.
Plan: -- finish roster hooks/APIs to the point where I can finish presence, which is largely untouched, but some of which kinda works already because we route messages around between users, even if we can't understand their magic. -- get it all documented -- make sure it works on a single node easily -- run it on my own server, start testing it -- use it in the office, with LDAP auth and roster support. (all of the company is on roster by default) -- finish SASL -- work more on LJ-specific internode communication and offline storage (not using SQLite! :)) -- ESN delivery to Jabber. -- Jabber/LJ integration. -- World Domination. |
|
|
| Comments: |
s/World Domination/-- ???\n--Profit!/
From: (Anonymous) 2006-04-09 03:16 am (UTC)
| (Link)
|
s/-- //
![[User Picture]](http://l-userpic.livejournal.com/9624370/1571) | From: evan 2006-04-09 04:30 am (UTC)
| (Link)
|
first_element v first_child: I can guess what that does. Man XML is such a pain.
![[User Picture]](http://l-userpic.livejournal.com/54541970/2) | From: brad 2006-04-09 07:32 am (UTC)
| (Link)
|
It's worse: I had to write my own XML DOM classes because all the stuff on CPAN was so terrible incompatible and inconsistent and plain didn't work. I seriously tried out around 20 modules, only to finally give up and say, "fuck it, going 'standard' doesn't buy me anything here." and rolled my own: http://code.sixapart.com/svn/djabberd/trunk/lib/DJabberd/XMLElement.pmNot much code in exchange for so much more sanity and exactly what I need. It's probably missing a ton, but I don't need it. So in all fairness, the first_element vs. first_child is totally my bug. I chose the internal representation, but I kinda like it.
![[User Picture]](http://l-userpic.livejournal.com/9624370/1571) | From: evan 2006-04-09 09:45 am (UTC)
| (Link)
|
return grep { ref $_ } @{ $self->{children} }; Does that work? At least in the XML parsers I've seen, there are elements other than text and "real" XML, like comments. See, uh, xmlElementType in libxml.
![[User Picture]](http://l-userpic.livejournal.com/54541970/2) | From: brad 2006-04-09 01:27 pm (UTC)
| (Link)
|
It works because it's my own class for exactly what I need, and Jabber/XMPP uses a reduced version of XML that doesn't have comments, PIs, entities, etc. Well, maybe comments are allowed, but I throw them away in the SAX Handler before I instantiate these DOM-like nodes. So my nodes are either scalars (text nodes) or not (ref) in which case they're "real" XML elements. | |