You are here

Matben's blog

Blog of Mats Bengtsson

Ad-Hoc Commands

As a client developer, while implementing a XEP, I often encounter problems with missing or incomplete server support. I guess this is inevitable in a client-server environment with distributed development.


While polishing The Coccinella I noted one extra dialog when another user removed me from its roster by sending a 'remove'. This extra dialog was identical to the one when another user rejects a subscription from me. A bit of tracking pointed to a presence with type 'unsubscribed' which is sent by the server in both cases. So I went to the protocol definition, RFC 3921 where it says in section 2.2.1: "unsubscribed -- The subscription request has been denied or a previously-granted subscription has been cancelled."


File transfers has been a long standing problem within the jabber community and the present solution using the so called bytestreams protocol is far from perfect. A kind of improvement by using symmetric streamhosts called fast mode is being used by Psi and Coccinella, but this extension was rejected by the Jabber Council (?) for reasons unknown to me. I can guess why; it is a bit complicated to implement, especially with stream proxies.

XML Parsing

Normally people don't need to bother about XML parsing since they typically use expat or a java parser. I wrote my own which wasn't very difficult.

Movable Roster Columns

I have thought of adding movable roster columns some time and suddenly a flash stroke my head. This applies, of course, only to the avatar/flat roster styles, which btw. use identical code.


Subscribe to RSS - Matben's blog