#ifndef LOADERS_H_INCLUDED #define LOADERS_H_INCLUDED #define LOADERS_H_VERSION "$Id: loaders.h,v 1.8 2001/07/29 18:58:15 jongfoster Exp $" /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/loaders.h,v $ * * Purpose : Functions to load and unload the various * configuration files. Also contains code to manage * the list of active loaders, and to automatically * unload files that are no longer in use. * * Copyright : Written by and Copyright (C) 2001 the SourceForge * IJBSWA team. http://ijbswa.sourceforge.net * * Based on the Internet Junkbuster originally written * by and Copyright (C) 1997 Anonymous Coders and * Junkbusters Corporation. http://www.junkbusters.com * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General * Public License as published by the Free Software * Foundation; either version 2 of the License, or (at * your option) any later version. * * This program is distributed in the hope that it will * be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU General Public * License for more details. * * The GNU General Public License should be included with * this file. If not, you can view it at * http://www.gnu.org/copyleft/gpl.html * or write to the Free Software Foundation, Inc., 59 * Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * Revisions : * $Log: loaders.h,v $ * Revision 1.8 2001/07/29 18:58:15 jongfoster * Removing nested #includes, adding forward declarations for needed * structures, and changing the #define _FILENAME_H to FILENAME_H_INCLUDED. * * Revision 1.7 2001/07/13 14:01:54 oes * Removed all #ifdef PCRS * * Revision 1.6 2001/06/07 23:14:38 jongfoster * Removing ACL and forward file loaders - these files have * been merged into the config file. * * Revision 1.5 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.4 2001/05/29 09:50:24 jongfoster * Unified blocklist/imagelist/permissionslist. * File format is still under discussion, but the internal changes * are (mostly) done. * * Also modified interceptor behaviour: * - We now intercept all URLs beginning with one of the following * prefixes (and *only* these prefixes): * * http://i.j.b/ * * http://ijbswa.sf.net/config/ * * http://ijbswa.sourceforge.net/config/ * - New interceptors "home page" - go to http://i.j.b/ to see it. * - Internal changes so that intercepted and fast redirect pages * are not replaced with an image. * - Interceptors now have the option to send a binary page direct * to the client. (i.e. ijb-send-banner uses this) * - Implemented show-url-info interceptor. (Which is why I needed * the above interceptors changes - a typical URL is * "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif". * The previous mechanism would not have intercepted that, and * if it had been intercepted then it then it would have replaced * it with an image.) * * Revision 1.3 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.2 2001/05/20 01:21:20 jongfoster * Version 2.9.4 checkin. * - Merged popupfile and cookiefile, and added control over PCRS * filtering, in new "permissionsfile". * - Implemented LOG_LEVEL_FATAL, so that if there is a configuration * file error you now get a message box (in the Win32 GUI) rather * than the program exiting with no explanation. * - Made killpopup use the PCRS MIME-type checking and HTTP-header * skipping. * - Removed tabs from "config" * - Moved duplicated url parsing code in "loaders.c" to a new funcition. * - Bumped up version number. * * Revision 1.1.1.1 2001/05/15 13:59:00 oes * Initial import of version 2.9.3 source tree * * *********************************************************************/ #ifdef __cplusplus extern "C" { #endif /* Structures taken from project.h */ struct client_state; struct file_list; struct configuration_spec; struct url_spec; extern void sweep(void); extern char *read_config_line(char *buf, int buflen, FILE *fp, struct file_list *fs); extern int check_file_changed(const struct file_list * current, const char * filename, struct file_list ** newfl); extern int load_actions_file(struct client_state *csp); extern int load_re_filterfile(struct client_state *csp); #ifdef FEATURE_TRUST extern int load_trustfile(struct client_state *csp); #endif /* def FEATURE_TRUST */ extern int create_url_spec(struct url_spec * url, char * buf); extern void free_url(struct url_spec *url); extern void add_loader(int (*loader)(struct client_state *), struct configuration_spec * config); extern int run_loader(struct client_state *csp); /* Revision control strings from this header and associated .c file */ extern const char loaders_rcs[]; extern const char loaders_h_rcs[]; #ifdef __cplusplus } /* extern "C" */ #endif #endif /* ndef LOADERS_H_INCLUDED */ /* Local Variables: tab-width: 3 end: */