haproxy public development tree
Go to file
Christopher Faulet a3ce7d7772 Revert "BUG/MEDIUM: mux-spop: Handle CLOSING state and wait for AGENT DISCONNECT frame"
This reverts commit 53c3046898.

This patch introduced a regression leading to a loop on the frames
demultiplexing because a frame may be ignore but not consumed.

But outside this regression that can be fixed, there is a design issue that
was not totally fixed by the patch above. The SPOP connection state is mixed
with the status of the frames demultiplexer and this needlessly complexify
the connection management. Instead of fixing the fix, a better solution is
to revert it to work a a proper solution.

For the record, the idea is to deal with the spop connection state onlu
using 'state' field and to introduce a new field to handle the frames
demultiplexer state. This should ease the closing state management.

Another issue that must be fixed. We must take care to not abort a SPOP
stream when an error is detected on a SPOP connection or when the connection
is closed, if the ACK frame was already received for this stream. It is not
a common case, but it can be solved by saving the last known stream ID that
recieved a ACK.

This patch must be backported if the commit above is backported.
2025-05-06 13:43:59 +02:00
.github CI: fedora rawhide: enable unit tests 2025-04-15 16:53:54 +02:00
addons CLEANUP: assorted typo fixes in the code, commits and doc 2025-04-03 11:37:25 +02:00
admin
dev DEV: h2: fix h2-tracer.lua nil value index 2025-04-08 17:44:41 +02:00
doc [RELEASE] Released version 3.2-dev14 2025-05-02 16:23:28 +02:00
examples EXAMPLES: add "games.cfg" and an example game in Lua 2025-04-01 09:10:00 +02:00
include DEBUG: threads: merge successive idempotent lock operations in history 2025-05-05 18:36:12 +02:00
reg-tests REGTEST: add new reg-test for the 4 new clienthello fetches 2025-04-17 16:39:47 +02:00
scripts TESTS: unit-tests: store sh -x in a result file 2025-03-06 21:22:38 +01:00
src Revert "BUG/MEDIUM: mux-spop: Handle CLOSING state and wait for AGENT DISCONNECT frame" 2025-05-06 13:43:59 +02:00
tests TESTS: Fix build for filltab25.c 2025-04-03 15:59:41 +02:00
.cirrus.yml
.gitattributes
.gitignore
.mailmap
.travis.yml
BRANCHES
BSDmakefile
CHANGELOG [RELEASE] Released version 3.2-dev14 2025-05-02 16:23:28 +02:00
CONTRIBUTING CLEANUP: assorted typo fixes in the code and comments 2025-04-02 11:12:20 +02:00
INSTALL DOC: update INSTALL to reflect the minimum compiler version 2025-04-02 18:09:47 +02:00
LICENSE
MAINTAINERS
Makefile MINOR: ssl: Add traces to ssl init/close functions 2025-04-30 11:11:26 +02:00
README.md
SUBVERS
VERDATE [RELEASE] Released version 3.2-dev14 2025-05-02 16:23:28 +02:00
VERSION [RELEASE] Released version 3.2-dev14 2025-05-02 16:23:28 +02:00

HAProxy

alpine/musl AWS-LC openssl no-deprecated Illumos NetBSD FreeBSD VTest

HAProxy logo

HAProxy is a free, very fast and reliable reverse-proxy offering high availability, load balancing, and proxying for TCP and HTTP-based applications.

Installation

The INSTALL file describes how to build HAProxy. A list of packages is also available on the wiki.

Getting help

The discourse and the mailing-list are available for questions or configuration assistance. You can also use the slack or IRC channel. Please don't use the issue tracker for these.

The issue tracker is only for bug reports or feature requests.

Documentation

The HAProxy documentation has been split into a number of different files for ease of use. It is available in text format as well as HTML. The wiki is also meant to replace the old architecture guide.

Please refer to the following files depending on what you're looking for:

  • INSTALL for instructions on how to build and install HAProxy
  • BRANCHES to understand the project's life cycle and what version to use
  • LICENSE for the project's license
  • CONTRIBUTING for the process to follow to submit contributions

The more detailed documentation is located into the doc/ directory:

License

HAProxy is licensed under GPL 2 or any later version, the headers under LGPL 2.1. See the LICENSE file for a more detailed explanation.