NAME

lond - ``LON Daemon'' Server (port ``LOND'' 5663)


SYNOPSIS

Usage: lond

Should only be run as user=www. This is a command-line script which is invoked by loncron. There is no expectation that a typical user will manually start lond from the command-line. (In other words, DO NOT START lond YOURSELF.)


DESCRIPTION

There are two characteristics associated with the running of lond, PROCESS MANAGEMENT (starting, stopping, handling child processes) and SERVER-SIDE ACTIVITIES (password authentication, user creation, subscriptions, etc). These are described in two large sections below.

PROCESS MANAGEMENT

Preforker - server who forks first. Runs as a daemon. HUPs. Uses IDEA encryption

lond forks off children processes that correspond to the other servers in the network. Management of these processes can be done at the parent process level or the child process level.

logs/lond.log is the location of log messages.

The process management is now explained in terms of linux shell commands, subroutines internal to this code, and signal assignments:

SERVER-SIDE ACTIVITIES

Server-side information can be accepted in an encrypted or non-encrypted method.

ping
Query a client in the hosts.tab table; ``Are you there?''

pong
Respond to a ping query.

ekey
Read in encrypted key, make cipher. Respond with a buildkey.

load
Respond with CPU load based on a computation upon /proc/loadavg.

currentauth
Reply with current authentication information (only over an encrypted channel).

auth
Only over an encrypted channel, reply as to whether a user's authentication information can be validated.

passwd
Allow for a password to be set.

makeuser
Make a user.

passwd
Allow for authentication mechanism and password to be changed.

home
Respond to a question ``are you the home for a given user?''

update
Update contents of a subscribed resource.

unsubscribe
The server is unsubscribing from a resource.

subscribe
The server is subscribing to a resource.

log
Place in logs/lond.log

put
stores hash in namespace

rolesput
put a role into a user's environment

get
returns hash with keys from array reference filled in from namespace

eget
returns hash with keys from array reference filled in from namesp (encrypts the return communication)

rolesget
get a role from a user's environment

del
deletes keys out of array from namespace

keys
returns namespace keys

dump
dumps the complete (or key matching regexp) namespace into a hash

store
stores hash permanently for this url; hashref needs to be given and should be a \%hashname; the remaining args aren't required and if they aren't passed or are '' they will be derived from the ENV

restore
returns a hash for a given url

querysend
Tells client about the lonsql process that has been launched in response to a sent query.

queryreply
Accept information from lonsql and make appropriate storage in temporary file space.

idput
Defines usernames as corresponding to IDs. (These ``IDs'' are unique identifiers for each student, defined perhaps by the institutional Registrar.)

idget
Returns usernames corresponding to IDs. (These ``IDs'' are unique identifiers for each student, defined perhaps by the institutional Registrar.)

tmpput
Accept and store information in temporary space.

tmpget
Send along temporarily stored information.

ls
List part of a user's directory.

Hanging up (exit or init)
What to do when a client tells the server that they (the client) are leaving the network.

unknown command
If lond is sent an unknown command (not in the list above), it replys to the client ``unknown_cmd''.

UNKNOWN CLIENT
If the anti-spoofing algorithm cannot verify the client, the client is rejected (with a ``refused'' message sent to the client, and the connection is closed.


PREREQUISITES

IO::Socket IO::File Apache::File Symbol POSIX Crypt::IDEA LWP::UserAgent() GDBM_File Authen::Krb4 Authen::Krb5


COREQUISITES


OSNAMES

linux


SCRIPT CATEGORIES

Server/Process