+ * Revision 1.63 2002/03/02 04:14:50 david__schmidt
+ * Clean up a little CRLF unpleasantness that suddenly appeared
+ *
+ * Revision 1.62 2002/02/20 23:17:23 jongfoster
+ * Detecting some out-of memory conditions and exiting with a log message.
+ *
+ * Revision 1.61 2002/01/17 21:01:52 jongfoster
+ * Moving all our URL and URL pattern parsing code to urlmatch.c.
+ *
+ * Revision 1.60 2001/12/30 14:07:32 steudten
+ * - Add signal handling (unix)
+ * - Add SIGHUP handler (unix)
+ * - Add creation of pidfile (unix)
+ * - Add action 'top' in rc file (RH)
+ * - Add entry 'SIGNALS' to manpage
+ * - Add exit message to logfile (unix)
+ *
+ * Revision 1.59 2001/12/13 14:07:18 oes
+ * Fixed Bug: 503 error page now sent OK
+ *
+ * Revision 1.58 2001/11/30 23:37:24 jongfoster
+ * Renaming the Win32 config file to config.txt - this is almost the
+ * same as the corresponding UNIX name "config"
+ *
+ * Revision 1.57 2001/11/16 00:47:43 jongfoster
+ * Changing the tty-disconnection code to use setsid().
+ *
+ * Revision 1.56 2001/11/13 20:20:54 jongfoster
+ * Tabs->spaces, fixing a bug with missing {} around an if()
+ *
+ * Revision 1.55 2001/11/13 20:14:53 jongfoster
+ * Patch for FreeBSD setpgrp() as suggested by Alexander Lazic
+ *
+ * Revision 1.54 2001/11/07 00:03:14 steudten
+ * Give reliable return value if an error
+ * occurs not just 0 with new daemon mode.
+ *
+ * Revision 1.53 2001/11/05 21:41:43 steudten
+ * Add changes to be a real daemon just for unix os.
+ * (change cwd to /, detach from controlling tty, set
+ * process group and session leader to the own process.
+ * Add DBG() Macro.
+ * Add some fatal-error log message for failed malloc().
+ * Add '-d' if compiled with 'configure --with-debug' to
+ * enable debug output.
+ *
+ * Revision 1.52 2001/10/26 20:11:20 jongfoster
+ * Fixing type mismatch
+ *
+ * Revision 1.51 2001/10/26 17:38:28 oes
+ * Cosmetics
+ *
+ * Revision 1.50 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.49 2001/10/23 21:41:35 jongfoster
+ * Added call to initialize the (statically-allocated of course)
+ * "out of memory" CGI response.
+ *
+ * Revision 1.48 2001/10/10 19:56:46 jongfoster
+ * Moving some code that wasn't cookie-related out of an #ifdef
+ * FEATURE_COOKIE_JAR
+ *
+ * Revision 1.47 2001/10/10 16:44:36 oes
+ * Added CONNECT destination port limitation check
+ *
+ * Revision 1.46 2001/10/08 15:17:41 oes
+ * Re-enabled SSL forwarding
+ *
+ * Revision 1.45 2001/10/07 15:42:11 oes
+ * Replaced 6 boolean members of csp with one bitmap (csp->flags)
+ *
+ * Moved downgrading of the HTTP version from parse_http_request to
+ * chat(), since we can't decide if it is necessary before we have
+ * determined the actions for the URL. The HTTP command is now
+ * *always* re-built so the repairs need no longer be special-cased.
+ *
+ * filter_popups now gets a csp pointer so it can raise the new
+ * CSP_FLAG_MODIFIED flag.
+ *
+ * Bugfix
+ *
+ * Added configurable size limit for the IOB. If the IOB grows so
+ * large that the next read would exceed the limit, the header
+ * is generated, and the header & unfiltered buffer are flushed
+ * to the client. Chat then continues in non-buffering,
+ * non-filtering body mode.
+ *
+ * Revision 1.44 2001/10/02 18:13:57 oes
+ * Ooops
+ *
+ * Revision 1.43 2001/10/02 15:32:13 oes
+ * Moved generation of hdr
+ *
+ * Revision 1.42 2001/09/21 23:02:02 david__schmidt
+ * Cleaning up 2 compiler warnings on OS/2.
+ *
+ * Revision 1.41 2001/09/16 17:05:14 jongfoster
+ * Removing unused #include showarg.h
+ *
+ * Revision 1.40 2001/09/16 15:41:45 jongfoster
+ * Fixing signed/unsigned comparison warning.
+ *
+ * Revision 1.39 2001/09/16 13:21:27 jongfoster
+ * Changes to use new list functions.
+ *
+ * Revision 1.38 2001/09/16 13:01:46 jongfoster
+ * Removing redundant function call that zeroed zalloc()'d memory.
+ *
+ * Revision 1.37 2001/09/10 11:12:24 oes
+ * Deleted unused variable
+ *
+ * Revision 1.36 2001/09/10 10:56:15 oes
+ * Silenced compiler warnings
+ *
+ * Revision 1.35 2001/07/31 14:44:22 oes
+ * Deleted unused size parameter from filter_popups()
+ *
+ * Revision 1.34 2001/07/30 22:08:36 jongfoster
+ * Tidying up #defines:
+ * - All feature #defines are now of the form FEATURE_xxx
+ * - Permanently turned off WIN_GUI_EDIT
+ * - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
+ *
+ * Revision 1.33 2001/07/29 19:32:00 jongfoster
+ * Renaming _main() [mingw32 only] to real_main(), for ANSI compliance.
+ *
+ * Revision 1.32 2001/07/29 18:47:05 jongfoster
+ * Adding missing #include "loadcfg.h"
+ *
+ * Revision 1.31 2001/07/29 12:17:48 oes
+ * Applied pthread fix by Paul Lieverse
+ *
+ * Revision 1.30 2001/07/25 22:57:13 jongfoster
+ * __BEOS__ no longer overrides FEATURE_PTHREAD.
+ * This is because FEATURE_PTHREAD will soon be widely used, so I
+ * want to keep it simple.
+ *
+ * Revision 1.29 2001/07/24 12:47:06 oes
+ * Applied BeOS support update by Eugenia
+ *
+ * Revision 1.28 2001/07/23 13:26:12 oes
+ * Fixed bug in popup-killing for the first read that caused binary garbage to be sent between headers and body
+ *
+ * Revision 1.27 2001/07/19 19:09:47 haroon
+ * - Added code to take care of the situation where while processing the first
+ * server response (which includes the server header), after finding the end
+ * of the headers we were not looking past the end of the headers for
+ * content modification. I enabled it for filter_popups.
+ * Someone else should look to see if other similar operations should be
+ * done to the discarded portion of the buffer.
+ *
+ * Note 2001/07/20: No, the other content modification mechanisms will process
+ * the whole iob later anyway. --oes
+ *
+ * Revision 1.26 2001/07/18 12:31:36 oes
+ * cosmetics
+ *
+ * Revision 1.25 2001/07/15 19:43:49 jongfoster
+ * Supports POSIX threads.
+ * Also removed some unused #includes.
+ *
+ * Revision 1.24 2001/07/13 14:00:40 oes
+ * - Generic content modification scheme:
+ * Each feature has its own applicability flag that is set
+ * from csp->action->flags.
+ * Replaced the "filtering" int flag , by a function pointer
+ * "content_filter" to the function that will do the content
+ * modification. If it is != NULL, the document will be buffered
+ * and processed through *content_filter, which must set
+ * csp->content_length and return a modified copy of the body
+ * or return NULL (on failiure).
+ * - Changed csp->is_text to the more generic bitmap csp->content_type
+ * which can currently take the valued CT_TEXT or CT_GIF
+ * - Reformatting etc
+ * - Removed all #ifdef PCRS
+ *
+ * Revision 1.23 2001/07/02 02:28:25 iwanttokeepanon
+ * Added "#ifdef ACL_FILES" conditional compilation to line 1291 to exclude
+ * the `block_acl' call. This prevents a compilation error when the user
+ * does not wish to use the "ACL" feature.
+ *
+ * Revision 1.22 2001/06/29 21:45:41 oes
+ * Indentation, CRLF->LF, Tab-> Space
+ *
+ * Revision 1.21 2001/06/29 13:29:36 oes
+ * - Cleaned up, improved comments
+ * - Unified all possible interceptors (CGI,
+ * block, trust, fast_redirect) in one
+ * place, with one (CGI) answer generation
+ * mechansim. Much clearer now.
+ * - Removed the GIF image generation, which
+ * is now done in filters.c:block_url()
+ * - Made error conditions like domain lookup
+ * failiure or (various) problems while talking
+ * to the server use cgi.c:error_response()
+ * instead of generating HTML/HTTP in chat() (yuck!)
+ * - Removed logentry from cancelled commit
+ *
+ * Revision 1.20 2001/06/09 10:55:28 jongfoster
+ * Changing BUFSIZ ==> BUFFER_SIZE
+ *
+ * Revision 1.19 2001/06/07 23:12:52 jongfoster
+ * Replacing function pointer in struct gateway with a directly
+ * called function forwarded_connect().
+ * Replacing struct gateway with struct forward_spec
+ *
+ * Revision 1.18 2001/06/03 19:12:16 oes
+ * introduced new cgi handling