[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