Defines | |
#define | CHAR_CR '\r' |
#define | CHAR_LF '\n' |
Functions | |
void | sweep (void) |
int | check_file_changed (const struct file_list *current, const char *filename, struct file_list **newfl) |
jb_err | simple_read_line (FILE *fp, char **dest, int *newline) |
jb_err | edit_read_line (FILE *fp, char **raw_out, char **prefix_out, char **data_out, int *newline, unsigned long *line_number) |
char * | read_config_line (char *buf, size_t buflen, FILE *fp, unsigned long *linenum) |
void | unload_re_filterfile (void *f) |
int | load_re_filterfile (struct client_state *csp) |
void | add_loader (int(*loader)(struct client_state *), struct configuration_spec *config) |
int | run_loader (struct client_state *csp) |
Variables | |
const char | loaders_rcs [] = "$Id: loaders.c,v 2.1 2002/06/04 17:22:37 jongfoster Exp $" |
const char | loaders_h_rcs [] = LOADERS_H_VERSION |
file_list * | current_re_filterfile = NULL |
Also contains code to manage the list of active loaders, and to automatically unload files that are no longer in use.
Revision 2.0 2002/06/04 14:34:21 jongfoster Moving source files to src/
Revision 1.50 2002/04/24 02:12:16 oes Jon's multiple AF patch: Sweep now takes care of all AFs
Revision 1.49 2002/04/19 16:53:25 jongfoster Optimize away a function call by using an equivalent macro
Revision 1.48 2002/04/05 00:56:09 gliptak Correcting typo to clean up on realloc failure
Revision 1.47 2002/03/26 22:29:55 swa we have a new homepage!
Revision 1.46 2002/03/24 13:25:43 swa name change related issues
Revision 1.45 2002/03/16 23:54:06 jongfoster Adding graceful termination feature, to help look for memory leaks. If you enable this (which, by design, has to be done by hand editing config.h) and then go to http://i.j.b/die, then the program will exit cleanly after the *next* request. It should free all the memory that was used.
Revision 1.44 2002/03/16 21:51:00 jongfoster Fixing free(NULL).
Revision 1.43 2002/03/16 20:28:34 oes Added descriptions to the filters so users will know what they select in the cgi editor
Revision 1.42 2002/03/13 00:27:05 jongfoster Killing warnings
Revision 1.41 2002/03/12 01:42:50 oes Introduced modular filters
Revision 1.40 2002/03/08 17:46:04 jongfoster Fixing int/size_t warnings
Revision 1.39 2002/03/07 03:46:17 oes Fixed compiler warnings
Revision 1.38 2002/03/06 22:54:35 jongfoster Automated function-comment nitpicking.
Revision 1.37 2002/03/03 15:07:49 oes Re-enabled automatic config reloading
Revision 1.36 2002/01/22 23:46:18 jongfoster Moving edit_read_line() and simple_read_line() to loaders.c, and extending them to support reading MS-DOS, Mac and UNIX style files on all platforms.
Modifying read_config_line() (without changing it's prototype) to be a trivial wrapper for edit_read_line(). This means that we have one function to read a line and handle comments, which is common between the initialization code and the edit interface.
Revision 1.35 2002/01/17 21:03:08 jongfoster Moving all our URL and URL pattern parsing code to urlmatch.c.
Renaming free_url to free_url_spec, since it frees a struct url_spec.
Revision 1.34 2001/12/30 14:07:32 steudten
Revision 1.32 2001/11/07 00:02:13 steudten Add line number in error output for lineparsing for actionsfile and configfile. Special handling for CLF added.
Revision 1.31 2001/10/26 17:39:01 oes Removed csp->referrer Moved ijb_isspace and ijb_tolower to project.h
Revision 1.30 2001/10/25 03:40:48 david__schmidt Change in porting tactics: OS/2's EMX porting layer doesn't allow multiple threads to call select() simultaneously. So, it's time to do a real, live, native OS/2 port. See defines for __EMX__ (the porting layer) vs. __OS2__ (native). Both versions will work, but using __OS2__ offers multi-threading.
Revision 1.29 2001/10/23 21:38:53 jongfoster Adding error-checking to create_url_spec()
Revision 1.28 2001/10/07 15:40:39 oes Replaced 6 boolean members of csp with one bitmap (csp->flags)
Revision 1.27 2001/09/22 16:36:59 jongfoster Removing unused parameter fs from read_config_line()
Revision 1.26 2001/09/22 14:05:22 jongfoster Bugfix: Multiple escaped "#" characters in a configuration file are now permitted. Also removing 3 unused headers.
Revision 1.25 2001/09/13 22:44:03 jongfoster Adding {} to an if statement
Revision 1.24 2001/07/30 22:08:36 jongfoster Tidying up defines:
Revision 1.22 2001/07/20 15:16:17 haroon
Revision 1.20 2001/07/17 13:07:01 oes Fixed segv when last line in config files lacked a terminating (\r)
Revision 1.19 2001/07/13 14:01:54 oes Removed all ifdef PCRS
Revision 1.18 2001/06/29 21:45:41 oes Indentation, CRLF->LF, Tab-> Space
Revision 1.17 2001/06/29 13:31:51 oes Various adaptions
Revision 1.16 2001/06/09 10:55:28 jongfoster Changing BUFSIZ ==> BUFFER_SIZE
Revision 1.15 2001/06/07 23:14:14 jongfoster Removing ACL and forward file loaders - these files have been merged into the config file. Cosmetic: Moving unloader funcs next to their respective loader funcs
Revision 1.14 2001/06/01 03:27:04 oes Fixed line continuation problem
Revision 1.13 2001/05/31 21:28:49 jongfoster Removed all permissionsfile code - it's now called the actions file, and (almost) all the code is in actions.c
Revision 1.12 2001/05/31 17:32:31 oes
Also modified interceptor behaviour:
Revision 1.8 2001/05/26 00:55:20 jongfoster Removing duplicated code. load_forwardfile() now uses create_url_spec()
Revision 1.7 2001/05/26 00:28:36 jongfoster Automatic reloading of config file. Removed obsolete SIGHUP support (Unix) and Reload menu option (Win32). Most of the global variables have been moved to a new struct configuration_spec, accessed through csp->config->globalname Most of the globals remaining are used by the Win32 GUI.
Revision 1.6 2001/05/23 12:27:33 oes
Fixed ugly indentation of my last changes
Revision 1.5 2001/05/23 10:39:05 oes
Revision 1.3 2001/05/20 01:21:20 jongfoster Version 2.9.4 checkin.
|
Character code for CR (ASCII 13). If you have a wierd compiler and this definition is incorrect, you also need to fix NEWLINE() in loaders.h |
|
Character code for LF (ASCII 10). If you have a wierd compiler and this definition is incorrect, you also need to fix NEWLINE() in loaders.h |
|
Called from `load_config'. Called once for each input file found in config.
|
|
Helper function to check if a file needs reloading. If "current" is still current, return it. Otherwise allocates a new (zeroed) "struct file_list", fills in the disk file name and timestamp, and returns it.
|
|
Read a single non-empty line from a file and return it. Trims comments, leading and trailing whitespace and respects escaping of newline and comment char. Provides the line in 2 alternative forms: raw and preprocessed.
|
|
Load the re_filterfile. Generate a chained list of re_filterfile_spec's from the "FILTER: " blocks, compiling all their substitutions into chained lists of pcrs_job structs.
|
|
Read a single non-empty line from a file and return it. Trims comments, leading and trailing whitespace and respects escaping of newline and comment char.
|
|
Called from `load_config' and `listen_loop'. This function keeps the "csp" current with any file mods since the last loop. If a file is unchanged, the loader functions do NOT reload the file.
|
|
Read a single line from a file and return it. This is basically a version of fgets() that malloc()s it's own line buffer. Note that the buffer will always be a multiple of BUFFER_SIZE bytes long. Therefore if you are going to keep the string for an extended period of time, you should probably strdup() it and free() the original, to save memory.
|
|
Basically a mark and sweep garbage collector, it is run (by the parent thread) every once in a while to reclaim memory. It uses a mark and sweep strategy: 1) mark all files as inactive 2) check with each client: if it is active, mark its files as active if it is inactive, free its resources 3) free the resources of all of the files that are still marked as inactive (and are obsolete). N.B. files that are not obsolete don't have an unloader defined.
|
|
Unload the re_filter list by freeing all chained re_filterfile specs and their data.
|
|
Currently active re_filter file. This is also entered in the main linked list of files. |
|
Version information about loaders.h.
|
|
Version information about loaders.c.
|