+ * Revision 1.46 2008/03/21 11:13:57 fabiankeil
+ * Only gather host information if it's actually needed.
+ * Also move the code out of accept_connection() so it's less likely
+ * to delay other incoming connections if the host is misconfigured.
+ *
+ * Revision 1.45 2007/09/30 16:59:22 fabiankeil
+ * Set the maximum listen() backlog to 128. Apparently SOMAXCONN is
+ * neither high enough, nor a hard limit on mingw32. Again for BR#1795281.
+ *
+ * Revision 1.44 2007/09/15 13:01:31 fabiankeil
+ * Increase listen() backlog to SOMAXCONN (or 128) to decrease
+ * chances of dropped connections under load. Problem reported
+ * and fix suggested by nobody in BR#1795281.
+ *
+ * Revision 1.43 2007/06/01 18:16:36 fabiankeil
+ * Use the same mutex for gethostbyname() and gethostbyaddr() to prevent
+ * deadlocks and crashes on OpenBSD and possibly other OS with neither
+ * gethostbyname_r() nor gethostaddr_r(). Closes BR#1729174.
+ * Thanks to Ralf Horstmann for report and solution.
+ *
+ * Revision 1.42 2007/04/01 17:37:07 fabiankeil
+ * - Add DNS retries for Solaris and other systems
+ * whose gethostbyname_r version takes five arguments.
+ * - Move maximum number of DNS retries into a macro.
+ *
+ * Revision 1.41 2006/11/13 19:05:51 fabiankeil
+ * Make pthread mutex locking more generic. Instead of
+ * checking for OSX and OpenBSD, check for FEATURE_PTHREAD
+ * and use mutex locking unless there is an _r function
+ * available. Better safe than sorry.
+ *
+ * Fixes "./configure --disable-pthread" and should result
+ * in less threading-related problems on pthread-using platforms,
+ * but it still doesn't fix BR#1122404.
+ *
+ * Revision 1.40 2006/09/02 15:36:42 fabiankeil
+ * Follow the OpenBSD port's lead and protect the resolve
+ * functions on OpenBSD as well.
+ *
+ * Revision 1.39 2006/08/03 02:46:41 david__schmidt
+ * Incorporate Fabian Keil's patch work:\rhttp://www.fabiankeil.de/sourcecode/privoxy/
+ *
+ * Revision 1.38 2006/07/18 14:48:46 david__schmidt
+ * Reorganizing the repository: swapping out what was HEAD (the old 3.1 branch)
+ * with what was really the latest development (the v_3_0_branch branch)
+ *
+ * Revision 1.35.2.8 2006/01/21 16:16:08 david__schmidt
+ * Thanks to Edward Carrel for his patch to modernize OSX's\rpthreads support. See bug #1409623.
+ *
+ * Revision 1.35.2.7 2005/05/07 21:50:55 david__schmidt
+ * A few memory leaks plugged (mostly on error paths)
+ *
+ * Revision 1.35.2.6 2003/12/17 16:34:40 oes
+ * Cosmetics
+ *
+ * Revision 1.35.2.5 2003/04/29 11:32:54 oes
+ * Don't rely on h_addr being non-NULL after gethostbyname.
+ * Works around an oddness in Max OSX and closes bug #724796
+ *
+ * Revision 1.35.2.4 2003/04/04 12:40:20 oes
+ * Made sure the errno set by bind, not close[socket] is used in
+ * bind_port. Probably fixes bugs #713777, #705562.
+ *
+ * Revision 1.35.2.3 2003/03/07 03:41:04 david__schmidt
+ * Wrapping all *_r functions (the non-_r versions of them) with mutex semaphores for OSX. Hopefully this will take care of all of those pesky crash reports.
+ *
+ * Revision 1.35.2.2 2002/11/20 14:37:24 oes
+ * Fixed Win32 error logging in bind_port.
+ * Thanks to Oliver Stoeneberg for the hint.
+ *
+ * Revision 1.35.2.1 2002/05/26 23:41:27 joergs
+ * AmigaOS: Fixed wrong type of len in write_socket()
+ *
+ * Revision 1.35 2002/04/26 15:50:04 joergs
+ * AmigaOS: No socklen_t, added AMIGA to the systems using int instead.
+ *
+ * Revision 1.34 2002/04/08 20:31:41 swa
+ * fixed JB spelling
+ *
+ * Revision 1.33 2002/04/03 16:02:18 gliptak
+ * Correcting compile warning with older gcc
+ *
+ * Revision 1.32 2002/03/31 17:18:59 jongfoster
+ * Win32 only: Enabling STRICT to fix a VC++ compile warning.
+ *
+ * Revision 1.31 2002/03/29 03:33:13 david__schmidt
+ * Fix Mac OSX compiler warnings
+ *
+ * Revision 1.30 2002/03/27 14:32:43 david__schmidt
+ * More compiler warning message maintenance
+ *
+ * Revision 1.29 2002/03/26 22:29:54 swa
+ * we have a new homepage!
+ *
+ * Revision 1.28 2002/03/24 13:25:43 swa
+ * name change related issues
+ *
+ * Revision 1.27 2002/03/13 00:27:05 jongfoster
+ * Killing warnings
+ *
+ * Revision 1.26 2002/03/11 22:07:02 david__schmidt
+ * OS/2 port maintenance:
+ * - Fixed EMX build - it had decayed a little
+ * - Fixed inexplicable crash during FD_ZERO - must be due to a bad macro.
+ * substituted a memset for now.
+ *
+ * Revision 1.25 2002/03/09 20:03:52 jongfoster
+ * - Making various functions return int rather than size_t.
+ * (Undoing a recent change). Since size_t is unsigned on
+ * Windows, functions like read_socket that return -1 on
+ * error cannot return a size_t.
+ *
+ * THIS WAS A MAJOR BUG - it caused frequent, unpredictable
+ * crashes, and also frequently caused JB to jump to 100%
+ * CPU and stay there. (Because it thought it had just
+ * read ((unsigned)-1) == 4Gb of data...)
+ *
+ * - The signature of write_socket has changed, it now simply
+ * returns success=0/failure=nonzero.
+ *
+ * - Trying to get rid of a few warnings --with-debug on
+ * Windows, I've introduced a new type "jb_socket". This is
+ * used for the socket file descriptors. On Windows, this
+ * is SOCKET (a typedef for unsigned). Everywhere else, it's
+ * an int. The error value can't be -1 any more, so it's
+ * now JB_INVALID_SOCKET (which is -1 on UNIX, and in
+ * Windows it maps to the #define INVALID_SOCKET.)
+ *
+ * - The signature of bind_port has changed.
+ *
+ * Revision 1.24 2002/03/07 03:51:36 oes
+ * - Improved handling of failed DNS lookups
+ * - Fixed compiler warnings etc
+ *
+ * Revision 1.23 2002/03/05 00:36:01 jongfoster
+ * Fixing bug 514988 - unable to restart Junkbuster
+ *
+ * Revision 1.22 2002/03/04 02:08:02 david__schmidt
+ * Enable web editing of actions file on OS/2 (it had been broken all this time!)
+ *
+ * Revision 1.21 2002/01/09 14:32:33 oes
+ * Added support for gethostbyname_r and gethostbyaddr_r.
+ *
+ * Revision 1.20 2001/11/16 00:48:48 jongfoster
+ * Enabling duplicate-socket detection for all platforms, not
+ * just Win32.
+ *
+ * Revision 1.19 2001/10/25 03:40:47 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.18 2001/09/21 23:02:02 david__schmidt
+ * Cleaning up 2 compiler warnings on OS/2.
+ *
+ * Revision 1.17 2001/09/13 20:11:46 jongfoster
+ * Fixing 2 compiler warnings under Win32
+ *
+ * Revision 1.16 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.15 2001/07/29 17:40:43 jongfoster
+ * Fixed compiler warning by adding a cast
+ *
+ * Revision 1.14 2001/07/18 13:47:59 oes
+ * Eliminated dirty hack for getsockbyname()
+ *
+ * Revision 1.13 2001/07/15 13:56:57 jongfoster
+ * Removing unused local variable.
+ *
+ * Revision 1.12 2001/07/01 17:04:11 oes
+ * Bugfix: accept_connection no longer uses the obsolete hstrerror() function
+ *
+ * Revision 1.11 2001/06/29 21:45:41 oes
+ * Indentation, CRLF->LF, Tab-> Space
+ *
+ * Revision 1.10 2001/06/29 13:29:15 oes
+ * - Added remote (server) host IP to csp->http->host_ip_addr_str
+ * - Added detection of local socket IP and fqdn
+ * - Removed logentry from cancelled commit
+ *
+ * Revision 1.9 2001/06/07 23:06:09 jongfoster
+ * The host parameter to connect_to() is now const.
+ *
+ * Revision 1.8 2001/06/03 19:12:07 oes
+ * filled comment
+ *
+ * Revision 1.7 2001/05/28 16:14:00 jongfoster
+ * Fixing bug in LOG_LEVEL_LOG
+ *
+ * Revision 1.6 2001/05/26 17:28:32 jongfoster
+ * Fixed LOG_LEVEL_LOG
+ *
+ * Revision 1.5 2001/05/26 15:26:15 jongfoster
+ * ACL feature now provides more security by immediately dropping
+ * connections from untrusted hosts.
+ *