MAJOR: spoe: upgrade the SPOP version to 2.0 and remove the support for 1.0

The commit c4dcaff3 ("BUG/MEDIUM: spoe: Flags are not encoded in network order")
introduced an incompatibility with older agents. So the major version of the
SPOP is increased to make the situation unambiguous. And because before the fix,
the protocol is buggy, the support of the version 1.0 is removed to be sure to
not continue to support buggy agents.

The agents in the contrib folder (spoa_example, modsecurity and mod_defender)
are also updated to announce the SPOP version 2.0.

So, to be clear, from the patch, connections to agents announcing the SPOP
version 1.0 will be rejected.

This patch must be backported in 1.8.
This commit is contained in:
Christopher Faulet 2018-05-31 14:56:42 +02:00 committed by Willy Tarreau
parent 730323e56e
commit 6381650516
4 changed files with 6 additions and 5 deletions

View File

@ -43,7 +43,7 @@
#define CONNECTION_BACKLOG 10
#define NUM_WORKERS 10
#define MAX_FRAME_SIZE 16384
#define SPOP_VERSION "1.0"
#define SPOP_VERSION "2.0"
#define SLEN(str) (sizeof(str)-1)

View File

@ -48,7 +48,7 @@
#define CONNECTION_BACKLOG 10
#define NUM_WORKERS 10
#define MAX_FRAME_SIZE 16384
#define SPOP_VERSION "1.0"
#define SPOP_VERSION "2.0"
#define SLEN(str) (sizeof(str)-1)

View File

@ -43,7 +43,7 @@
#define CONNECTION_BACKLOG 10
#define NUM_WORKERS 10
#define MAX_FRAME_SIZE 16384
#define SPOP_VERSION "1.0"
#define SPOP_VERSION "2.0"
#define SLEN(str) (sizeof(str)-1)

View File

@ -314,12 +314,13 @@ struct spoe_version {
/* All supported versions */
static struct spoe_version supported_versions[] = {
{"1.0", 1000, 1000},
/* 1.0 is now unsupported because of a bug about frame's flags*/
{"2.0", 2000, 2000},
{NULL, 0, 0}
};
/* Comma-separated list of supported versions */
#define SUPPORTED_VERSIONS_VAL "1.0"
#define SUPPORTED_VERSIONS_VAL "2.0"
/* Convert a string to a SPOE version value. The string must follow the format
* "MAJOR.MINOR". It will be concerted into the integer (1000 * MAJOR + MINOR).