[Spread-users] Spread source overview
Jonathan Stanton
jonathan at cnds.jhu.edu
Thu Sep 6 10:28:23 EDT 2001
I just had one or two things to add to Yair's reply. Essentially you are
exactly right.
Comments are inline.
On Thu, Sep 06, 2001 at 05:24:57AM +0100, Joshua Goodall wrote:
>
> Primarily for my own use I have just been through the source and made a
> one-line overview for each source file. I suspect I have it partially
> wrong, particularly with respect to network.c, protocol.c, groups.c and
> membership.c. I'd appreciate it if someone who "knows the source" can
> correct me.
>
> This is what I have:
>
> Spread daemon:
>
> acm.c handle access control policies
> acp-permit.c acp_ops to permit open access
> alarm.c console message filtering&display
> auth-ip.c auth_ops for IP-based authentication
> auth-null.c auth_ops for no authentication
> config_parse.[yl] yacc & lex source for reading configuration files
> configuration.c yacc wrapper & configuration lookup
> data_link.c socket code layer with scatter
> events.c event scheduling&delivery, prioritised-events select wrapper
> flow_control.c update ring flowcontrol tunables
> groups.c manages group memberships
> log.c write log messages to file
> membership.c network membership state machine including ring protocol
> memory.c typed&pooled memory object manager
> message.c message object data access functions
The session layer (groups.c, session.c) use an abstraction of a message
that is provided by message.c. Message.c is intertwined (by implementation)
with the protocol layer (membership.c protocol.c flow_control.c). The idea
is that changes to the protocol layer data structures can be made without
effecting the session layer.
> network.c implement forwarding choices of protocol.c, call data_link.c
> protocol.c implement reliability & ordering
> session.c handle client connections
> skiplist.c implementation of skiplists for group lookups
> spread.c initialise subsystems, start main event loop
> status.c respond to monitor status requests (magic 15051963)
>
> Library sources:
> alarm.c as above
> events.c as above
> memory.c as above
> sp.c Spread client API implementation library
>
> Tools sources:
> monitor.c monitor & manage daemons
> flooder.c message flooder
> user.c command-line interface to client API
> simple_user.c simple send&receive demonstration
>
> Other sources:
> r.c sniffing tool
> s.c spamming tool
Useful for testing network UDP loss rates.
> arch.c dummy strerror for SunOS
> auth-pword.c acp_ops for cleartext password authentication } unused?
> auth-pword-client.c acp_ops for cleartext password authentication }
These are unused because I don't consider them tested or necessarily a good
idea (bad security). They were written to provide an example of an
authentication module.
Jonathan
--
-------------------------------------------------------
Jonathan R. Stanton jonathan at cs.jhu.edu
Dept. of Computer Science
Johns Hopkins University
-------------------------------------------------------
More information about the Spread-users
mailing list