lonsql - LON TCP-MySQL-Server Daemon for handling database requests.
This script should be run as user=www.
Note that a lonsql.pid file contains the pid of the parent process.
lonsql is many things to many people. To me, it is a source file in need
of documentation.
- Global Variables
-
- dbh
-
- Variables required for forking
-
- $MAX_CLIENTS_PER_CHILD
-
The number of clients each child should process.
- %children
-
The keys to %children are the current child process IDs
- $children
-
The current number of children
- Main body of code.
-
- Read data from loncapa_apache.conf and loncapa.conf.
-
- Ensure we can access the database.
-
- Determine if there are other instances of lonsql running.
-
- Read the hosts file.
-
- Create a socket for lonsql.
-
- Fork once and dissociate from parent.
-
- Write PID to disk.
-
- Prefork children and maintain the population of children.
-
- &make_new_child
-
Inputs: None
Returns: None
- &do_sql_query
-
Runs an sql metadata table query.
Inputs: $query, $custom, $customshow
Returns: A string containing escaped results.
- &logthis
-
Inputs: $message, the message to log
Returns: nothing
Writes $message to the logfile.
- &subreply
-
Sends a command to a server. Called only by &reply.
Inputs: $cmd,$server
Returns: The results of the message or 'con_lost' on error.
- &reply
-
Sends a command to a server.
Inputs: $cmd,$server
Returns: The results of the message or 'con_lost' on error.
- &escape
-
Escape special characters in a string.
Inputs: string to escape
Returns: The input string with special characters escaped.
- &unescape
-
Unescape special characters in a string.
Inputs: string to unescape
Returns: The input string with special characters unescaped.
- &ishome
-
Determine if the current machine is the home server for a user.
The determination is made by checking the filesystem for the users information.
Inputs: $author
Returns: 0 - this is not the authors home server, 1 - this is.
- &propath
-
Inputs: user name, user domain
Returns: The full path to the users directory.
- &courselog
-
Inputs: $path, $command
Returns: unescaped string of values.
- &userlog
-
Inputs: $path, $command
Returns: unescaped string of values.
- Functions required for forking
-
- REAPER
-
REAPER takes care of dead children.
- HUNTSMAN
-
Signal handler for SIGINT.
- HUPSMAN
-
Signal handler for SIGHUP
- DISCONNECT
-
Disconnects from database.