[JDEV] FreeBSD and MIO

Edward J Becker Sauron at mediaone.net
Fri Dec 8 11:58:58 CST 2000


Does this mean that in order to handle XDB by a custom component that some
code must be written natively as a .SO ?

I was hoping to have a separate (likely Java) component handle XDB and was
hoping sockets were used for communication. Is this possible? Am I missing
something?

Edward


-----Original Message-----
From: jdev-admin at jabber.org [mailto:jdev-admin at jabber.org]On Behalf Of
Keith Minkler
Sent: Friday, December 08, 2000 4:24 AM
To: jdev at jabber.org
Subject: Re: [JDEV] FreeBSD and MIO


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

_______________________________________________
jdev mailing list
jdev at jabber.org
http://mailman.jabber.org/listinfo/jdev





More information about the JDev mailing list