blob: 89ee1041ce10f16b1d2cd16be1bd22b1a52d0119 [file] [log] [blame]
Willy Tarreaubaaee002006-06-26 02:48:02 +02001/*
Willy Tarreau2dd0d472006-06-29 17:53:05 +02002 include/common/defaults.h
Willy Tarreaubaaee002006-06-26 02:48:02 +02003 Miscellaneous default values.
4
5 Copyright (C) 2000-2006 Willy Tarreau - w@1wt.eu
6
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation, version 2.1
10 exclusively.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20*/
21
Willy Tarreau2dd0d472006-06-29 17:53:05 +020022#ifndef _COMMON_DEFAULTS_H
23#define _COMMON_DEFAULTS_H
Willy Tarreaubaaee002006-06-26 02:48:02 +020024
Willy Tarreaubaaee002006-06-26 02:48:02 +020025/*
26 * BUFSIZE defines the size of a read and write buffer. It is the maximum
27 * amount of bytes which can be stored by the proxy for each session. However,
28 * when reading HTTP headers, the proxy needs some spare space to add or rewrite
29 * headers if needed. The size of this spare is defined with MAXREWRITE. So it
30 * is not possible to process headers longer than BUFSIZE-MAXREWRITE bytes. By
31 * default, BUFSIZE=16384 bytes and MAXREWRITE=BUFSIZE/2, so the maximum length
32 * of headers accepted is 8192 bytes, which is in line with Apache's limits.
33 */
34#ifndef BUFSIZE
35#define BUFSIZE 16384
36#endif
37
38// reserved buffer space for header rewriting
39#ifndef MAXREWRITE
40#define MAXREWRITE (BUFSIZE / 2)
41#endif
42
43#define REQURI_LEN 1024
44#define CAPTURE_LEN 64
45
46// max # args on a configuration line
47#define MAX_LINE_ARGS 40
48
49// max # of added headers per request
50#define MAX_NEWHDR 10
51
52// max # of matches per regexp
53#define MAX_MATCH 10
54
Willy Tarreaue5f20dc2006-12-03 15:21:35 +010055// max # of headers in one HTTP request or response
56// By default, about 100 headers per 8 kB.
57#ifndef MAX_HTTP_HDR
58#define MAX_HTTP_HDR ((BUFSIZE+79)/80)
59#endif
60
Willy Tarreaub8949f12007-03-23 22:39:59 +010061// max # of loops we can perform around a read() which succeeds.
62// It's very frequent that the system returns a few TCP segments at a time.
63#ifndef MAX_READ_POLL_LOOPS
64#define MAX_READ_POLL_LOOPS 4
65#endif
66
Willy Tarreaubaaee002006-06-26 02:48:02 +020067// cookie delimitor in "prefix" mode. This character is inserted between the
68// persistence cookie and the original value. The '~' is allowed by RFC2965,
69// and should not be too common in server names.
70#ifndef COOKIE_DELIM
71#define COOKIE_DELIM '~'
72#endif
73
74#define CONN_RETRIES 3
75
76#define CHK_CONNTIME 2000
77#define DEF_CHKINTR 2000
78#define DEF_FALLTIME 3
79#define DEF_RISETIME 2
80#define DEF_CHECK_REQ "OPTIONS / HTTP/1.0\r\n\r\n"
81
82/* Default connections limit.
83 *
84 * A system limit can be enforced at build time in order to avoid using haproxy
85 * beyond reasonable system limits. For this, just define SYSTEM_MAXCONN to the
86 * absolute limit accepted by the system. If the configuration specifies a
87 * higher value, it will be capped to SYSTEM_MAXCONN and a warning will be
88 * emitted. The only way to override this limit will be to set it via the
89 * command-line '-n' argument.
90 */
91#ifndef SYSTEM_MAXCONN
92#define DEFAULT_MAXCONN 2000
93#else
94#define DEFAULT_MAXCONN SYSTEM_MAXCONN
95#endif
96
Willy Tarreau2dd0d472006-06-29 17:53:05 +020097#endif /* _COMMON_DEFAULTS_H */