Configuration system of W3C httpd

/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
/*
**	Ari Luotonen, CERN, 1994, 
*/
#ifndef HTCONFIG_H
#define HTCONFIG_H
#include "HTUtils.h"
#include "HTList.h"
#include "HTAccess.h"
#include "HTWild.h"
#include "HTRules.h"
#include "HTAAProt.h"
#define DEFAULT_INPUT_TIMEOUT	 120	 /* 2 mins */
#define DEFAULT_OUTPUT_TIMEOUT	1200	 /* 20 mins */
#define DEFAULT_SCRIPT_TIMEOUT	 300	 /* 5 mins */
#define DEFAULT_CLEANUP_TIMEOUT 15	 /* 15 secs to write to log file */
#define DEFAULT_CACHE_LM_FACTOR	 0.1	 /* 10% of the time last-modified */
#define DEFAULT_REFRESH_INTERVAL 1200000 /* About 2 weeks */
typedef struct _HTRule {
 struct _HTRule *	next;
 HTRuleOp		op;
 HTPattern *		pat;
 HTPattern *		eqv;
 HTUidGid *		ids;
 char *		prot_file;
 HTAAProt *		prot_setup;
} HTRule;
typedef enum {
 SERVER_TYPE_UNINITIALIZED = 0,
 SERVER_TYPE_STANDALONE,
 SERVER_TYPE_INETD
} HTServType;
typedef struct _HTServerConfig {
 char *	hostname;		/* Used for CGI scripts		*/
 HTServType	server_type;		/* Standalone or inetd		*/
 int		port;			/* Default port number string	*/
 BOOL	no_bg;			/* Don't auto-go background	*/
 BOOL	standalone;		/* Am I standalone?		*/
 char *	server_root;		/* Server's "home directory"	*/
 int		security_level;		/* 0 = normal, 1 = high		*/
 char *	errormsg_path;		/* URL for error messages	*/
 char *	icon_path;		/* URL for Standard icons	*/
 BOOL	icons_inited;		/* If not we'll use defaults	*/
 int		input_timeout;		/* Timeout for reading request	*/
 int		output_timeout;		/* Timeout for sending response	*/
 int		script_timeout;		/* Timeout for scripts		*/
 char *	pid_file;		/* File to write the pid number	*/
 BOOL	do_accept_hack;		/* Send even if not Accept'ed	*/
 BOOL	disabled[MAX_METHODS+1];/* Disabled methods		*/
 BOOL	do_setuid;		/* Do setuid() to auth'd uid	*/
 int		max_content_len_buf;	/* How much to buffer for c-l	*/
 HTList *	no_log;			/* Hosts for which no logging	*/
 BOOL	new_logfile_format;	/* Use new common logfile format*/
 BOOL	use_gmt;		/* Use GMT instead of localtime	*/
 char *	user_dir;		/* User supported directory name*/
 char *	user_id;		/* Default user id		*/
 char *	group_id;		/* Default group id		*/
 char *	parent_uid;		/* User id for parent process	*/
 char *	parent_gid;		/* Group id for parent process	*/
 BOOL	do_rfc931;		/* Should we check remote ident	*/
 BOOL	do_dns_lookup;		/* Get the DNS name for client	*/
 BOOL	do_linger;		/* Is lingering really necessary*/
 char *	meta_dir;		/* Directory for metafiles	*/
 char *	meta_suffix;		/* Suffix for metafiles		*/
 BOOL	always_welcome;		/* Redirect directory names to	*/
					/* welcome page on that dir.	*/
 char *	access_log_name;	/* Access log file name		*/
 char *	proxy_log_name;		/* Proxy access log file name	*/
 char *	cache_log_name;		/* Cache access log file name	*/
 char *	error_log_name;		/* Error log file name		*/
 char *	log_file_date_ext;	/* Log file Date Extension	*/
 BOOL	reloading;		/* Are we now reloding rules	*/
 HTList *	rule_files;		/* All loaded files by name	*/
} HTServerConfig;
typedef struct _HTResourceConfig {
 HTRule *	rule_head;		/* Rules (first rule)		*/
 HTRule *	rule_tail;		/* Last rule			*/
 HTList *	named_prots;		/* Named protections setups	*/
 char *	search_script;		/* Search script name.		*/
 char *	put_script;		/* Script to handle PUT		*/
 char *	post_script;		/* Script to handle POST	*/
 char *	delete_script;		/* Script to handle DELETE	*/
} HTResourceConfig;
typedef struct _HTPatTime {
 HTPattern *		pat;
 time_t		time;
 struct _HTPatTime *	next;
 struct _HTPatTime *	last;	/* Only set for the first node in list	*/
} HTPatTime;
typedef struct _HTPatFact {
 HTPattern *		pat;
 float		factor;
 struct _HTPatFact *	next;
 struct _HTPatFact *	last;	/* Only set for the first node in list	*/
} HTPatFact;
typedef struct _HTCacheConfig {
 BOOL	caching_explicitly_off;	/* Is caching disabled		*/
 char *	cache_root;		/* Cache directory for gateway	*/
 HTList *	no_caching;		/* No caching if matching these	*/
 HTList *	cache_only;		/* Cache only if matching these	*/
 HTPatTime *	cache_clean;		/* Remove always after this time*/
 time_t	cache_clean_def;	/* (by template and a default).	*/
 HTPatTime *	cache_unused;		/* Remove after unused this long*/
 time_t	cache_unused_def;	/* (by template and a default).	*/
 HTPatTime *	cache_exp;		/* Default expiry when not given*/
 time_t	cache_exp_def;		/* (by template and a default).	*/
 HTPatTime *	cache_refresh_interval;	/* Force cache refresh		*/
 HTPatFact *	cache_lm_factors;	/* For approximating Expires:	*/
 long	cache_max_k;		/* Default size in K (5MB small)*/
 int		cache_max_f;		/* At most this many cache files*/
 int		cache_limit_1;		/* Size no problem until 200K	*/
 int		cache_limit_2;		/* No caching after 4MB		*/
 time_t	cache_time_margin;	/* Time accuracy (in seconds)	*/
 time_t	cache_lock_timeout;	/* Break hanging locks		*/
 BOOL	keep_expired;		/* Use the max cache capasity	*/
 BOOL	do_exp_check;		/* Do expiry check		*/
 BOOL	cache_no_connect;	/* Use only local cache		*/
 BOOL	gc_disabled;		/* Never do garbage collection	*/
 time_t	gc_daily_gc;		/* gc daily at 3:00am		*/
 int		gc_mem_usage_control;	/* How radical mem usage	*/
} HTCacheConfig;
/*
 *	Global variables for server, resource and cache configuration
 */
extern HTServerConfig	sc;		/* Server configuration		*/
extern HTResourceConfig	rc;		/* Resource configuration	*/
extern HTCacheConfig	cc;		/* Cache & proxy configuration	*/
/*
 *	HTDefaultConfig() should be called in as the first thing when
 *	the server starts to initialize the default configuration.
 */
PUBLIC void HTDefaultConfig NOPARAMS;
/*
 *	Add rule to current resource configuration;
 *	this is NOT for Protect and DefProt rules,
 *	ONLY for Map, Pass, Fail, Exec, and Redirect
 */
PUBLIC HTRule * HTAppendRule PARAMS((HTRuleOp		op,
				 CONST char *	pattern,
				 CONST char *	equiv));
/*
 *	HTLoadConfig(filename) opens the configuration file, reads
 *	and parses it, and memorizes the filename so that server
 *	restart can reload the same file.
 */
PUBLIC BOOL HTLoadConfig PARAMS((char * filename));
/*
 *	HTServerInit() does final server configuration initialization;
 *	it initializes standard icons and open log files.
 *
 *	After the first time functions as the server restart function,
 *	i.e. also reloads the configuration files, and re-opens all
 *	the log files.
 */
PUBLIC BOOL HTServerInit NOPARAMS;
/*
 *	Translate request through the rule system
 */
PUBLIC BOOL HTTranslateReq PARAMS((HTRequest * req));
/*
 *	Utility functions for cache module
 */
PUBLIC time_t get_default_expiry PARAMS((char * url));
PUBLIC time_t get_unused PARAMS((char * url));
PUBLIC time_t get_clean PARAMS((char * url));
PUBLIC time_t get_refresh_interval PARAMS((char * url));
PUBLIC float get_lm_factor PARAMS((char * url));
#endif /* HTCONFIG_H */
End of declaration module

AltStyle によって変換されたページ (->オリジナル) /