[JDEV] xdb_sql
Ray Deininger
ray at iatrogenix.com
Wed Oct 2 17:42:03 CDT 2002
I'm trying to use querydefs to identify a new namespace by following the
example in the readme for jabber:iq:url. I followed the instructions, but I
keep getting a "service unavailable" error. Anyone got any ideas? Any help
will be appreciated.
The query I am sending using winjab:
SENT: <iq type='set' id='12'><query
xmlns="jabber:iq:url"/><domain>www.iatrogenix.com</domain><file>index.html</
file></iq>
RECV: <iq type='error' id='12' from='rdeining at imsrv.iatrogenix.com'
to='rdeining at imsrv.iatrogenix.com/iam'><query
xmlns='jabber:iq:url'/><domain>www.iatrogenix.com</domain><file>index.html</
file><error code='503'>Service Unavailable</error></iq>
I added 2 fields to the database table users (site, page) both are varchar
(128 and 64 size resp. null ok)
I added the following to the jabber.xml file:
<xdb id="xdb_sql">
<host/>
<ns>jabber:iq:url</ns>
<ns>jabber:iq:roster</ns>
<ns>jabber:x:offline</ns>
<ns>jabber:iq:filter</ns>
<ns>jabber:iq:last</ns>
<ns>jabber:iq:register</ns>
<load>
<xdb_sql>/var/lib/jabber/xdb_sql/xdb_sql.so</xdb_sql>
</load>
<jabberd:include>/etc/xdb_sql.xml</jabberd:include>
</xdb>
and I added the following to the xdb_sql.xml file:
<querydef name="url-set" dtd="2" type="set" namespace="jabber:iq:url">
<text> UPDATE users SET site = '$$domain$$', page = '$$file$$' WHERE
username = '$$user$$'</text>
<user>$$user$$</user>
<bindvar tag="domain">$$domain$$</bindvar>
<bindvar tag="file">$$file$$</bindvar>
<purge>url-remove</purge>
</querydef>
<querydef name="url-get" dtd="2" type="get" namespace="jabber:iq:url">
<text>SELECT site, page FROM users WHERE username = '$$u$$'</text>
<user>$$u$$</user>
<top-result><x xmlns='jabber:iq:url'/></top-result>
<bindcol tag="domain" offset="0"/>
<bindcol tag="file" offset="1"/>
</querydef>
<querydef name="url-remove" dtd="2" type="remove"
namespace="jabber:iq:url">
<text>DELETE FROM users where username='$$user$$'</text>
<user>$$user$$</user>
<bindvar tag="domain">$$domain$$</bindvar>
<bindvar tag="file">$$file$$</bindvar>
</querydef>
More information about the JDev
mailing list