[JDEV] FreeBSD and MIO

Keith Minkler keith at digix.dyndns.org
Fri Dec 8 03:23:34 CST 2000


Dennis,

    You may be getting the components confused, if I'm reading that right...

lemmi clarify a few terms for the benifit of the list, et all...

Jabberd 
-------
    Jabberd is simply an XML router.  it routes XML packets among known
    hostnames.

Base Modules
------------
    Base Modules offer jabberd some functionality.. they are used to
    describe instances and tell jabberd how to route packets, and 
    how instances connect to jabberd
    some base modules are:
    base_load: DSO loader
    base_exec: calls other programs.. passes data via STDIN/OUT
    base_accept: listens on a port for component connections
    base_host: defines a host name to deliver packets to
    base_file: writes data to a file


Components
----------
    Components are the server modules.  the most common components are:
    JSM (Jabber Session Manager) -- does session management (can do auth as well)
    S2S (Server "2" Server) -- connects to other servers to transmit packets
    DNSRV (DNS Resolver) -- provides asyncronys DNS Resolution (without ADNS)
    C2S (Client "2" Server) -- the component that listens on 5222 for clients
    xdb_file -- the default XDB component.. uses flat files (username.xml) to store data
    transports -- transports are all jabberd components

Instances
---------
    Defined in the jabberd config file.  base modules describe components
    and can "instanate" a component.. i.e. load it up, and hook it into
    jabberd's deliver process 
    can be one of 3 types:
    xdb -- only gets <xdb/> packets
    log -- only gets <log/> packets
    service -- gets <route/>, <message/>, <presence/>, and <iq/> packets


MIO will live in jabberd, and yes, a component will have to be a DSO to use it, but,
this doesn't involve JSM at all.. JSM is simply a component that manages Jabber
Sessions.. (Jabber Session Manager) 

jabberd can handle a single server with transports running on it.. or you can
spread the components among many different servers, and link jabberd's together
with base_accept and base_connect.

Hope this helps to clear things up!

Keith Minkler


On Fri, Dec 08, 2000 at 10:54:29AM +0200, Dennis Noordsij wrote:
> On a note about MIO, I recall reading somewhere it would require all 
> components to be modules linked into jabber? For me the power of jabber is 
> being able to run all these parts on different systems and have them talk 
> over TCP/IP. I assume my JSM will be too busy routing messages to also have 
> all the transports and components running.
> 
> Apologies if this has been discussed already and I missed it :-)
> 
> Regards,
> Dennis
> 
> 
> On Friday 08 December 2000 08:55, you wrote:
> > Jdev,
> >
> > I finnaly found the FreeBSD select(2) bug.. (well, my bug, not FreeBSD's)
> > *G*
> >
> > It has to do with differences in how linux and FreeBSD handle select(2)
> > getting interupted by a signal.  On Linux, it clears the FD sets you pass
> > into it, but on FreeBSD, it leaves the sets untouched.  (Thank GOD for man
> > pages).  It is easily fixed by checking the return value of select(2), and
> > not trying to read(2), write(2), or accept(2) from the sockets on an error
> > condition (-1) such as when the loop is signalled.
> >
> > *phew*  with much joy, FreeBSD will be able to share in the 1.4 bliss,
> > along with the rest of the community.. *G*
> >
> > Keith Minkler
> 
> _______________________________________________
> jdev mailing list
> jdev at jabber.org
> http://mailman.jabber.org/listinfo/jdev




More information about the JDev mailing list