[JDEV] How Modules Work?

Adam Theo adamtheo at theoretic.com
Thu Jul 19 22:29:31 CDT 2001

hello, all. was wondering how modules in jabberd work?

i have looked at the jabberd API document, the technical and protocol
overviews, and a few other docs at the docs.jabber.org site, and *think*
i understand the steps. let me run them by you. note: i do not know the
lsightest bit of C, and have really no desire to learn, but i am very
interested in the process and steps involved.

(1) etherx picks up the xmlstream (message) from another server.
(2) etherx passes it along to the jabber session manager (jsm)
(3) the jsm then runs it through the jabberd modules.

now, where are the modules located? in the ./jsm/ directory, i assume? 

how does the jsm know to run the message through them? i assume by the
<load main="jsm"/> section in the jabber.xml file? or does the simple
'modules' file in the ./jsm/ directory have something to with it?

what about order? does the jsm run the message through the mods one by
one, using a admin-defined sequence? if a message 'matches' or is used
by a module, i assume the module can tell the jsm to scrap the message
and not pass it on to any more modules?

what kind of things can modules do? really anything? i assume a module
reads the full xml message, and then does stuff depending upon what is
in it? so if it is an presence message, the presence module does
presence stuff, and then discards the message?

i will assume that it is neccessary to program modules for the jabelin
server in C, since they must be dynamically loaded libraries? is there
any documentation (heavy, detailed) on writing modules? is the jabberd
api document it?

thank you all for your time.

More information about the JDev mailing list