Commit Graph

2925 Commits

Author SHA1 Message Date
Willy Tarreau
2a429503e0 [MINOR] turn every FD_* into functions
On recent CPUs, functions are about twice as fast as inline FD_*, so
there is now a #define CONFIG_HAP_INLINE_FD_SET to choose between the
two modes.
2006-10-15 14:53:07 +02:00
Willy Tarreau
0bbc3cf157 [MEDIUM] fix broken redispatch option
Since the connection queueing was introduced, the "redispatch"
option could not cover the cases where a connection has been
refused by the server after having been marked "in progress".
The fix consists in doing a redispatch in the delayed connection
handling code.

Problem reported by Konrad Rzentarzewski.
2006-10-15 14:26:02 +02:00
Willy Tarreau
9f0a90145f [BUILD] added the 'git-tar' target to the Makefile
Now, doing a "make git-tar" will automaticall build the tar.gz archive
from the versionned tree.
2006-10-15 14:24:14 +02:00
Willy Tarreau
690f9aa028 [RELEASE] released 1.3.2
- started the changes towards I/O completion callbacks. stream_sock* have
      replaced event_*.
    - added the new "reqtarpit" and "reqitarpit" protection features
2006-09-03 11:23:06 +02:00
Willy Tarreau
08fa2e37fd [MINOR] tarpit: close the connection if the client closes.
There's no point at maintaining an open tarpitted connection
if the client has left.
2006-09-03 10:47:37 +02:00
Willy Tarreau
2272dc14bb [DOC] add docs and examples of tarpit configuration 2006-09-03 10:19:38 +02:00
Willy Tarreau
b8750a82a2 [MEDIUM] added the "reqtarpit" and "reqitarpit" features
It is now possible to tarpit connections based on regex matches.
The tarpit timeout is equal to the contimeout. A 500 server error
response is faked, and the logs show the status flags as "PT" which
indicate the connection has been tarpitted.
2006-09-03 09:56:00 +02:00
Willy Tarreau
f8306d5391 [MEDIUM] got rid of event_{cli,srv}_write() in favor of stream_sock_write()
The timeouts, expiration timers and results are now stored in the buffers.
The timers will have to change a bit to become more flexible, and when the
I/O completion functions will be written, the connect_complete() will have
to be extracted from the write() function.
2006-07-29 19:01:31 +02:00
Willy Tarreau
d797128d6e [MEDIUM] got rid of event_{cli,srv}_read() in favor of stream_sock_read() 2006-07-29 18:36:34 +02:00
Willy Tarreau
0f9f5056f9 [MEDIUM] removed all res_* and RES_*
The read-, write-, end- and error- status are now stored in the buffer.
2006-07-29 17:39:25 +02:00
Willy Tarreau
5446940e37 [MEDIUM] started the changes towards I/O completion callbacks
Now the event_* functions find their buffer in the fdtab itself.
2006-07-29 16:59:06 +02:00
Willy Tarreau
1da7a77031 [TESTS] added two new test configurations
- one for basic features
- one for httpterm
2006-07-29 16:47:12 +02:00
Willy Tarreau
8f2b855ab2 [RELEASE] released 1.3.1 after resyncing with 1.2.15
Released 1.3.1 with the following changes from 1.2.15 :
   - now, haproxy warns about missing timeout during startup to try to
     eliminate all those buggy configurations.
   - added "Content-Type: text/html" in responses wherever appropriate, as
     suggested by Cameron Simpson.
   - implemented "option ssl-hello-chk" to use SSLv3 CLIENT HELLO messages to
     test server's health
   - implemented "monitor-uri" so that haproxy can reply to a specific URI with
     an "HTTP/1.0 200 OK" response. This is useful to validate multiple proxies
     at once.
2006-07-09 17:11:39 +02:00
Willy Tarreau
6bbf14c154 [DOC] provided an example of configuration involving URL switching. 2006-07-09 17:02:06 +02:00
Willy Tarreau
1c47f85292 [MEDIUM] implemented the 'monitor-uri' keyword.
It is used to test haproxy's status with an HTTP request to which
it will reply with HTTP/1.0 200 OK.
2006-07-09 17:01:40 +02:00
Willy Tarreau
f3c692090e [MEDIUM] implement 'option ssl-hello-chk' to use CLIENT HELLO health checks.
This makes it possible to relay SSL connections in pure TCP instances while
ensuring the remote end really receives our data eventhough intermediate
agents (firewalls, proxies, ...) might acknowledge the connection.
2006-07-09 16:42:34 +02:00
Willy Tarreau
2738a14941 [MEDIUM] now upon startup, haproxy will warn about missing timeouts.
Too many problem reports were caused by missing timeouts. While
there has never been any default value since version 1.0, having
no timeout is abnormal in networked environments, and will lead
to various problems such as CLOSE_WAIT sockets accumulating and
nasty things like this. For this reason, it's better to annoy
the users until they fix their configs than letting them run
buggy configurations.
2006-07-09 16:22:41 +02:00
Willy Tarreau
791d66d363 [MINOR] added lots of Content-Type: text/html to HTML responses and stats.
This suggestion from Cameron Simpson is perfectly valid and should have been
implemented from the beginning.
2006-07-09 16:13:17 +02:00
Willy Tarreau
b9e98b6836 [RELEASE] version 1.3.0
Released version 1.3.0 which differs from 1.2.14 only by the fact
that the code is now classed in multiple .c and .h files.
2006-07-03 10:32:46 +02:00
Willy Tarreau
e3ba5f0aaa [CLEANUP] included common/version.h everywhere 2006-06-29 18:54:54 +02:00
Willy Tarreau
2dd0d4799e [CLEANUP] renamed include/haproxy to include/common 2006-06-29 17:53:05 +02:00
Willy Tarreau
baaee00406 [BIGMOVE] exploded the monolithic haproxy.c file into multiple files.
The files are now stored under :
  - include/haproxy for the generic includes
  - include/types.h for the structures needed within prototypes
  - include/proto.h for function prototypes and inline functions
  - src/*.c for the C files

Most include files are now covered by LGPL. A last move still needs
to be done to put inline functions under GPL and not LGPL.

Version has been set to 1.3.0 in the code but some control still
needs to be done before releasing.
2006-06-26 02:48:02 +02:00
Willy TARREAU
0028339317 [BUILD] fixed build on alpha-linux + epoll 2006-06-17 00:04:47 +02:00
Willy TARREAU
3dc0644167 [LICENSE] licensing clarifications 2006-06-15 21:48:13 +02:00
willy tarreau
ccf454ac70 [BUG] neither stats nor error messages could be returned without clitimeout 2006-06-15 21:00:47 +02:00
Willy Tarreau
94b4591f20 [DOC] renamed 'haproxy' instead of 'ha-proxy' or 'h a p r o x y'
File indexation systems (including search engines) did not read
'haproxy' when needed, which made it more difficult to find the
doc on the net.
2006-05-31 06:40:15 +02:00
willy tarreau
7e6328df2a [RELEASE] released 1.2.14
Released 1.2.14 with the following changes :

   - new HTML status report with the 'stats' keyword.
   - added the 'abortonclose' option to better resist traffic surges
   - implemented dynamic traffic regulation with the 'minconn' option
   - show request time on denied requests
   - definitely fixed hot reconf on OpenBSD by the use of SO_REUSEPORT
   - now a proxy instance is allowed to run without servers, which is
     useful to dedicate one instance to stats
   - added lots of error counters
   - a missing parenthesis preventd matching of cacheable cookies
   - a missing parenthesis in poll_loop() might have caused missed events.
2006-05-21 23:26:20 +02:00
willy tarreau
8f635a4feb [DOC] french doc update 2006-05-21 23:05:54 +02:00
willy tarreau
8cd311407e [MINOR] display "<STATS>" in the logs for statistics access. 2006-05-21 22:08:00 +02:00
willy tarreau
2b598cc00a [MINOR] always ensure that minconn < maxconn or override it. 2006-05-21 22:07:31 +02:00
willy tarreau
d4ba08d7ca [DOC] add some informations about 'stats' and 'option httpclose'. 2006-05-21 21:54:14 +02:00
willy tarreau
052c15dbe6 Merge branch 'abort-close' into merge 2006-05-21 21:43:58 +02:00
willy tarreau
481132e07c [DOC] documented the 'stats' parameter. 2006-05-21 21:43:10 +02:00
willy tarreau
12e0212448 Merge branch 'minconn' into abort-close 2006-05-21 21:11:03 +02:00
willy tarreau
f76e6cad83 [MAJOR] implemented the 'minconn' server parameter for dynamic load regulation
When 'minconn' is set, the number of simultaneous sessions sent to the server
will be limited by a dynamic value depending on the global load on the
instance itself. The principle is to fix the maximal concurrency on the server
proportionnally to the instance's usage relative to its maxconn, with a minimum
fixed to <minconn>. The formula for the number of simultaneous sessions sent
to the server is then max(srv_minconn, srv_maxconn*px_conn/px_maxconn). This
helps unloading the servers when the load is very low.
2006-05-21 21:09:55 +02:00
willy tarreau
e0bdd62128 [DOC] documented the 'abortonclose' option 2006-05-21 20:51:54 +02:00
willy tarreau
03a92de772 [MEDIUM] added the 'abortonclose' option.
When this option is enabled, a session will be destroyed immediately if
a client closes during ST_IDLE or ST_CONN states.
2006-05-21 18:26:53 +02:00
willy tarreau
606788e4d5 [MAJOR] missing parenthesis in poll_loop() might have caused missed events. 2006-05-21 16:26:20 +02:00
willy tarreau
7476ec9876 [MAJOR] missing parenthesis prevented matching of cacheable cookies ! 2006-05-21 16:24:15 +02:00
willy tarreau
e3b3065877 [MEDIUM] added counters for connect/response/security errors 2006-05-21 16:23:22 +02:00
willy tarreau
38d79062b3 [MINOR] allow a proxy instance to run without any server (useful for stats) 2006-05-21 14:47:13 +02:00
willy tarreau
1f431b5851 [MEDIUM] the stats dump FSM was buggy and looped on dispatch instances.
It has been rewritten and now supports an initialization state. It now also
prevents from dumping stopped(disabled) listeners and it is possible to
specify a scope with a list of proxies that are allowed to be dumped from
the one being configured ('.' meaning "this one"). The 'stats' entry can
be configured from the 'defaults' instance and it is correctly flushed
from proxies which redefine it.
2006-05-21 14:46:15 +02:00
willy tarreau
fac1a86495 [MEDIUM] hopefully definitely fixed hot-reconf for OpenBSD 2006-05-21 10:20:28 +02:00
willy tarreau
338be83aea [MINOR] cosmetic changes in the stats interface 2006-05-21 08:58:06 +02:00
willy tarreau
2d505e5754 [CRITICAL] potential NULL dereference when counting stats in dispatch mode 2006-05-21 08:32:50 +02:00
willy tarreau
47ee7ad0a4 [MINOR] also set request time on denied requests 2006-05-18 01:25:36 +02:00
willy tarreau
950609c39c [MINOR] set request time even for stats requests 2006-05-18 01:23:51 +02:00
willy tarreau
d0a05bd220 [BUILD] updated Makefile.bsd for the new files 2006-05-18 01:22:27 +02:00
willy tarreau
cb4065148c [MEDIUM] completed HTML status output, fixed some rendering bugs.
Removed one missed debugging write(), fixed buffer management.
Now the HTML table output uses a color code with a caption. Some
more statistics have been collected such as maximum values reached
and failed health checks. Null limits now show "-" instead of "0".
2006-05-18 00:52:35 +02:00
willy tarreau
e033126130 [MEDIUM] first working code for an HTML status report. 2006-05-15 03:02:46 +02:00