config.h
上传用户:zm130024
上传日期:2007-01-04
资源大小:432k
文件大小:7k
源码类别:

代理服务器

开发平台:

Unix_Linux

  1. /*
  2.  * Copyright (c) 1997, 1998, 1999
  3.  *      Inferno Nettverk A/S, Norway.  All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions
  7.  * are met:
  8.  * 1. The above copyright notice, this list of conditions and the following
  9.  *    disclaimer must appear in all copies of the software, derivative works
  10.  *    or modified versions, and any portions thereof, aswell as in all
  11.  *    supporting documentation.
  12.  * 2. All advertising materials mentioning features or use of this software
  13.  *    must display the following acknowledgement:
  14.  *      This product includes software developed by
  15.  *      Inferno Nettverk A/S, Norway.
  16.  * 3. The name of the author may not be used to endorse or promote products
  17.  *    derived from this software without specific prior written permission.
  18.  *
  19.  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  20.  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  21.  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  22.  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  23.  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  24.  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  25.  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  26.  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  27.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  28.  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  29.  *
  30.  * Inferno Nettverk A/S requests users of this software to return to
  31.  *
  32.  *  Software Distribution Coordinator  or  sdc@inet.no
  33.  *  Inferno Nettverk A/S
  34.  *  Oslo Research Park
  35.  *  Gaustadal閑n 21
  36.  *  N-0371 Oslo
  37.  *  Norway
  38.  *
  39.  * any improvements or extensions that they make and grant Inferno Nettverk A/S
  40.  * the rights to redistribute these changes.
  41.  *
  42.  */
  43. /* $Id: config.h,v 1.37 1999/07/10 13:52:26 karls Exp $ */
  44. #ifndef _CONFIG_H_
  45. #define _CONFIG_H_
  46. #endif
  47. /*
  48.  * Everything in this file is put here so you can change it to suit
  49.  * your particular installation. You should not need to change
  50.  * any other files.
  51.  *
  52.  * Several of the variables can have a big impact on performance,
  53.  * latency and throughput.  Tuning the server to the optimum for
  54.  * your particular environment might be difficult but hopefully
  55.  * the defaults as set in this file will provide a adequate
  56.  * compromise.  Should you wish for more optimum tuning, you
  57.  * might want to look at the SUPPORT file coming with Dante.
  58. */
  59. /*
  60.  * client/server stuff.
  61. */
  62. /*
  63.  * default client/server lockfile.
  64.  * Put this on a fast, low-latency fs, under /tmp is usually good.
  65. */
  66. #define SOCKS_LOCKFILE "./sockslockXXXXXXXXXX"
  67. /* if profiling is enabled, directory to store profile files in. */
  68. #define SOCKS_PROFILEDIR "./prof"
  69. /*
  70.  * client stuff.
  71. */
  72. /* default client config file. */
  73. #if !HAVE_SOCKS_CONFIGFILE
  74. #define SOCKS_CONFIGFILE "/etc/socks.conf"
  75. #else
  76. #define SOCKS_CONFIGFILE HAVE_ALT_SOCKS_CONFIGFILE
  77. #endif /* !HAVE_SOCKS_CONFIGFILE */
  78. /*
  79.  * server stuff.
  80. */
  81. /*
  82.  * If we are compiling with libwrap support, this sets the maximum
  83.  * linelength for a libwrap line.  Should be the same or less as the
  84.  * one libwrap uses internally, but we don't have access to that size.
  85. */
  86. #if HAVE_LIBWRAP
  87. #define LIBWRAPBUF 80
  88. #endif  /* HAVE_LIBWRAP */
  89. /*
  90.  * used only if no usable system call is found (getdtablesize()/sysconf()).
  91.  * If you are missing the system calls, but know what the value should
  92.  * be for max open files per process on your system, you should set
  93.  * this define to the correct value.
  94. */
  95. #define SOCKS_FD_MAX 64
  96. /*
  97.  * The file the server will write it's process id to.
  98.  * Note that this file should be in a restricted directory.
  99. */
  100. #if !HAVE_SOCKD_PIDFILE
  101. #define SOCKD_PIDFILE "/var/run/sockd.pid"
  102. #else
  103. #define SOCKD_PIDFILE HAVE_ALT_SOCKD_PIDFILE
  104. #endif /* !HAVE_SOCKD_PIDFILE */
  105. /* default port for server to listen on. */
  106. #define SOCKD_PORT 1080
  107. /* default server configfile */
  108. #if !HAVE_SOCKD_CONFIGFILE
  109. #define SOCKD_CONFIGFILE "/etc/sockd.conf"
  110. #else
  111. #define SOCKD_CONFIGFILE HAVE_ALT_SOCKD_CONFIGFILE
  112. #endif /* !HAVE_SOCKD_CONFIGFILE */
  113. /* max number of clients pending to server (argument to listen()). */
  114. #define SOCKD_MAXCLIENTQUE 5
  115. /*
  116.  * We try to cache resolved hostnames and addresses.  The following
  117.  * values affect this.
  118. */
  119. /* cacheentries we should allocate for caching hostnames. */
  120. #define SOCKD_HOSTCACHE 512
  121. /* cacheentries we should allocate for caching addresses. */
  122. #define SOCKD_ADDRESSCACHE 512
  123. /* seconds a cacheentry is to be considered valid, don't set below 1. */
  124. #define SOCKD_CACHETIMEOUT 3600
  125. /* print some statistics for every SOCKD_CACHESTAT lookup.  0 to disable. */
  126. #define SOCKD_CACHESTAT 0
  127. /*
  128.  * number of seconds a client can negotiate with server.
  129.  * Can be changed in configfile.
  130. */
  131. #define SOCKD_NEGOTIATETIMEOUT 120
  132. /*
  133.  * number of seconds a client can be connected after negotiation is completed
  134.  * without sending/receiving any data.  Can be changed in configfile.
  135. */
  136. #define SOCKD_IOTIMEOUT 86400
  137. /*
  138.  * Number of slots to try and keep available for new clients at any given time.
  139.  * The server tries to be a little more intelligent about this, but not much.
  140. */
  141. #define SOCKD_FREESLOTS 4
  142. /*
  143.  * Dante supports one process handling N clients, where the max value for
  144.  * 'N' is limited by your system.  There will be a degradation in
  145.  * performance as N increases, the biggest hop being from one to two,
  146.  * but significantly less resources/processes might be used on the machine
  147.  * the Dante server is running on.
  148.  *
  149.  * There are two defines that govern this; SOCKD_NEGOTIATEMAX and SOCKD_IOMAX.
  150.  * Note that these are per process basis, Dante will automatically create as
  151.  * many processes as it thinks it needs as it goes along.
  152. */
  153. /*
  154.  * max number of clients each negotiate process will handle.
  155.  * You can probably set this to a big number.
  156.  * Each client will occupy one descriptor.
  157. */
  158. #define SOCKD_NEGOTIATEMAX 24
  159. /*
  160.  * max number of clients each i/o process will handle.
  161.  * Each client will occupy up to three descriptors.
  162.  * While shortage of slots in the other processes will create a
  163.  * delay for the client, shortage of i/o slots will prevent the client
  164.  * from doing any i/o untill a i/o slot has become available.  It is
  165.  * therefore important that enough i/o slots are available at all times.
  166. */
  167. #define SOCKD_IOMAX 8
  168. /* server buffersize for network i/o using TCP. */
  169. #define SOCKD_BUFSIZETCP (1024 * 16)
  170. /* server buffersize for network i/o using UDP. */
  171. #define SOCKD_BUFSIZEUDP (1024 * 16)
  172. /*
  173.  * skew watermarks by this factor compared to "optimal".
  174.  * Setting it to one minimises cputime used by the server at a
  175.  * possibly big cost in performance.  Never set it to more than one.
  176.  * I'd be interested in hearing peoples result with this.
  177. */
  178. #define LOWATSKEW (0.75)
  179. /*
  180.  * For systems that do not have the "low watermarks" socket option.
  181.  * It is important not to set it to too high a value as that will
  182.  * probably degrade performance for clients even more, causing starvation.
  183.  * Basicly; low value  -> better interactive performance,
  184.  * high value -> better throughput.
  185. */
  186. #if !HAVE_SO_SNDLOWAT
  187. #define SO_SNDLOWAT_SIZE (1024 * 4)
  188. #endif