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

代理服务器

开发平台:

Unix_Linux

  1. /*
  2.  * $Id: defines.h,v 1.71 1999/02/02 23:57:22 wessels Exp $
  3.  *
  4.  *
  5.  * SQUID Internet Object Cache  http://squid.nlanr.net/Squid/
  6.  * ----------------------------------------------------------
  7.  *
  8.  *  Squid is the result of efforts by numerous individuals from the
  9.  *  Internet community.  Development is led by Duane Wessels of the
  10.  *  National Laboratory for Applied Network Research and funded by the
  11.  *  National Science Foundation.  Squid is Copyrighted (C) 1998 by
  12.  *  Duane Wessels and the University of California San Diego.  Please
  13.  *  see the COPYRIGHT file for full details.  Squid incorporates
  14.  *  software developed and/or copyrighted by other sources.  Please see
  15.  *  the CREDITS file for full details.
  16.  *
  17.  *  This program is free software; you can redistribute it and/or modify
  18.  *  it under the terms of the GNU General Public License as published by
  19.  *  the Free Software Foundation; either version 2 of the License, or
  20.  *  (at your option) any later version.
  21.  *  
  22.  *  This program is distributed in the hope that it will be useful,
  23.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  24.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  25.  *  GNU General Public License for more details.
  26.  *  
  27.  *  You should have received a copy of the GNU General Public License
  28.  *  along with this program; if not, write to the Free Software
  29.  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
  30.  *
  31.  */
  32. #ifndef TRUE
  33. #define TRUE 1
  34. #endif
  35. #ifndef FALSE
  36. #define FALSE 0
  37. #endif
  38. #define ACL_NAME_SZ 32
  39. #define BROWSERNAMELEN 128
  40. #define ACL_SUNDAY 0x01
  41. #define ACL_MONDAY 0x02
  42. #define ACL_TUESDAY 0x04
  43. #define ACL_WEDNESDAY 0x08
  44. #define ACL_THURSDAY 0x10
  45. #define ACL_FRIDAY 0x20
  46. #define ACL_SATURDAY 0x40
  47. #define ACL_ALLWEEK 0x7F
  48. #define ACL_WEEKDAYS 0x3E
  49. #define DefaultDnsChildrenMax 32 /* 32 processes */
  50. #define DefaultRedirectChildrenMax 32 /* 32 processes */
  51. #define DefaultAuthenticateChildrenMax 32 /* 32 processes */
  52. #define MAXHTTPPORTS 12
  53. #define COMM_OK   (0)
  54. #define COMM_ERROR  (-1)
  55. #define COMM_NOMESSAGE  (-3)
  56. #define COMM_TIMEOUT  (-4)
  57. #define COMM_SHUTDOWN  (-5)
  58. #define COMM_INPROGRESS  (-6)
  59. #define COMM_ERR_CONNECT (-7)
  60. #define COMM_ERR_DNS     (-8)
  61. #define COMM_ERR_CLOSING (-9)
  62. /* Select types. */
  63. #define COMM_SELECT_READ   (0x1)
  64. #define COMM_SELECT_WRITE  (0x2)
  65. #define MAX_DEBUG_SECTIONS 100
  66. #define COMM_NONBLOCKING 0x01
  67. #define COMM_NOCLOEXEC 0x02
  68. #define COMM_REUSEADDR 0x04
  69. #define debug(SECTION, LEVEL) 
  70.         ((_db_level = (LEVEL)) > debugLevels[SECTION]) ? (void) 0 : _db_print
  71. #define safe_free(x) if (x) { xxfree(x); x = NULL; }
  72. #define DISK_OK                   (0)
  73. #define DISK_ERROR               (-1)
  74. #define DISK_EOF                 (-2)
  75. #define DISK_NO_SPACE_LEFT       (-6)
  76. #define DNS_INBUF_SZ 4096
  77. #define FD_DESC_SZ 64
  78. #define FQDN_LOOKUP_IF_MISS 0x01
  79. #define FQDN_MAX_NAMES 5
  80. #define HTTP_REPLY_FIELD_SZ 128
  81. #define BUF_TYPE_8K  1
  82. #define BUF_TYPE_MALLOC 2
  83. #define ANONYMIZER_NONE 0
  84. #define ANONYMIZER_STANDARD 1
  85. #define ANONYMIZER_PARANOID 2
  86. #define USER_IDENT_SZ 64
  87. #define IDENT_NONE 0
  88. #define IDENT_PENDING 1
  89. #define IDENT_DONE 2
  90. #define IP_LOOKUP_IF_MISS 0x01
  91. #define MAX_MIME 4096
  92. /* Mark a neighbor cache as dead if it doesn't answer this many pings */
  93. #define HIER_MAX_DEFICIT  20
  94. #define ICP_FLAG_HIT_OBJ     0x80000000ul
  95. #define ICP_FLAG_SRC_RTT     0x40000000ul
  96. /* Version */
  97. #define ICP_VERSION_2 2
  98. #define ICP_VERSION_3 3
  99. #define ICP_VERSION_CURRENT ICP_VERSION_2
  100. #define DIRECT_UNKNOWN 0
  101. #define DIRECT_NO    1
  102. #define DIRECT_MAYBE 2
  103. #define DIRECT_YES   3
  104. #define REDIRECT_AV_FACTOR 1000
  105. #define REDIRECT_NONE 0
  106. #define REDIRECT_PENDING 1
  107. #define REDIRECT_DONE 2
  108. #define AUTHENTICATE_AV_FACTOR 1000
  109. #define AUTHENTICATE_NONE 0
  110. #define AUTHENTICATE_PENDING 1
  111. #define AUTHENTICATE_DONE 2
  112. #define  CONNECT_PORT        443
  113. #define current_stacksize(stack) ((stack)->top - (stack)->base)
  114. /* logfile status */
  115. #define LOG_ENABLE  1
  116. #define LOG_DISABLE 0
  117. #define SM_PAGE_SIZE 4096
  118. #define DISK_PAGE_SIZE  8192
  119. #define EBIT_SET(flag, bit)  ((void)((flag) |= ((1L<<(bit)))))
  120. #define EBIT_CLR(flag, bit)  ((void)((flag) &= ~((1L<<(bit)))))
  121. #define EBIT_TEST(flag, bit)  ((flag) & ((1L<<(bit))))
  122. /* bit opearations on a char[] mask of unlimited length */
  123. #define CBIT_BIT(bit)           (1<<((bit)%8))
  124. #define CBIT_BIN(mask, bit)     (mask)[(bit)>>3]
  125. #define CBIT_SET(mask, bit)  ((void)(CBIT_BIN(mask, bit) |= CBIT_BIT(bit)))
  126. #define CBIT_CLR(mask, bit)  ((void)(CBIT_BIN(mask, bit) &= ~CBIT_BIT(bit)))
  127. #define CBIT_TEST(mask, bit)  (CBIT_BIN(mask, bit) & CBIT_BIT(bit))
  128. #define MAX_FILES_PER_DIR (1<<20)
  129. #define MAX_URL  4096
  130. #define MAX_LOGIN_SZ  128
  131. #define PEER_MAX_ADDRESSES 10
  132. #define RTT_AV_FACTOR      50
  133. #define PEER_DEAD 0
  134. #define PEER_ALIVE 1
  135. #define AUTH_MSG_SZ 4096
  136. #define HTTP_REPLY_BUF_SZ 4096
  137. #if !defined(ERROR_BUF_SZ) && defined(MAX_URL)
  138. #define ERROR_BUF_SZ (MAX_URL << 2)
  139. #endif
  140. #define READ_AHEAD_GAP (1<<14)
  141. #if SQUID_SNMP
  142. #define VIEWINCLUDED    1
  143. #define VIEWEXCLUDED    2
  144. #endif
  145. #define STORE_META_OK     0x03
  146. #define STORE_META_DIRTY  0x04
  147. #define STORE_META_BAD    0x05
  148. #define IPC_NONE 0
  149. #define IPC_TCP_SOCKET 1
  150. #define IPC_UDP_SOCKET 2
  151. #define IPC_FIFO 3
  152. #define STORE_META_KEY STORE_META_KEY_MD5
  153. #define STORE_META_TLD_START sizeof(int)+sizeof(char)
  154. #define STORE_META_TLD_SIZE STORE_META_TLD_START
  155. #define SwapMetaType(x) (char)x[0]
  156. #define SwapMetaSize(x) &x[sizeof(char)]
  157. #define SwapMetaData(x) &x[STORE_META_TLD_START]
  158. #define STORE_HDR_METASIZE (4*sizeof(time_t)+2*sizeof(u_short)+sizeof(int))
  159. #define STORE_ENTRY_WITH_MEMOBJ 1
  160. #define STORE_ENTRY_WITHOUT_MEMOBJ 0
  161. #define STORE_SWAP_BUF DISK_PAGE_SIZE
  162. #define VM_WINDOW_SZ DISK_PAGE_SIZE
  163. #define SKIP_BASIC_SZ ((size_t) 6)
  164. #define PINGER_PAYLOAD_SZ 8192
  165. #define COUNT_INTERVAL 60
  166. /*
  167.  * keep 60 minutes' worth of per-minute readings (+ current reading)
  168.  */
  169. #define N_COUNT_HIST (3600 / COUNT_INTERVAL) + 1
  170. /*
  171.  * keep 3 days' (72 hours) worth of hourly readings
  172.  */
  173. #define N_COUNT_HOUR_HIST (86400 * 3) / (60 * COUNT_INTERVAL)
  174. /* were to look for errors if config path fails */
  175. #define DEFAULT_SQUID_ERROR_DIR "/usr/local/squid/etc/errors"
  176. /* gb_type operations */
  177. #define gb_flush_limit (0x3FFFFFFF)
  178. #define gb_inc(gb, delta) { if ((gb)->bytes > gb_flush_limit || delta > gb_flush_limit) gb_flush(gb); (gb)->bytes += delta; (gb)->count++; }
  179. /* iteration for HttpHdrRange */
  180. #define HttpHdrRangeInitPos (-1)
  181. /* use this and only this to initialize HttpHeaderPos */
  182. #define HttpHeaderInitPos (-1)
  183. /* handy to determine the #elements in a static array */
  184. #define countof(arr) (sizeof(arr)/sizeof(*arr))
  185. /* to initialize static variables (see also MemBufNull) */
  186. #define MemBufNULL { NULL, 0, 0, 0, NULL }
  187. /*
  188.  * Max number of ICP messages to receive per call to icpHandleUdp
  189.  */
  190. #define INCOMING_ICP_MAX 15
  191. /*
  192.  * Max number of HTTP connections to accept per call to httpAccept
  193.  * and PER HTTP PORT
  194.  */
  195. #define INCOMING_HTTP_MAX 10
  196. #define INCOMING_TOTAL_MAX (INCOMING_ICP_MAX+INCOMING_HTTP_MAX)
  197. /*
  198.  * This many TCP connections must FAIL before we mark the
  199.  * peer as DEAD
  200.  */
  201. #define PEER_TCP_MAGIC_COUNT 10
  202. #define CLIENT_SOCK_SZ 4096
  203. #define URI_WHITESPACE_DENY 0
  204. #define URI_WHITESPACE_ALLOW 1
  205. #define URI_WHITESPACE_ENCODE 2
  206. #define URI_WHITESPACE_CHOP 3
  207. #ifndef _PATH_DEVNULL
  208. #define _PATH_DEVNULL "/dev/null"
  209. #endif
  210. #define USE_TRUNCATE_NOT_UNLINK 1