From: Christopher Faulet Date: Thu, 31 May 2018 12:56:42 +0000 (+0200) Subject: MAJOR: spoe: upgrade the SPOP version to 2.0 and remove the support for 1.0 X-Git-Tag: v1.9-dev1~222 X-Git-Url: http://git.haproxy.org/?a=commitdiff_plain;h=6381650516b3c3f9c272da66d33d9f9e23139594;p=haproxy-2.1.git 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. --- diff --git a/contrib/mod_defender/spoa.c b/contrib/mod_defender/spoa.c index 1191260..34b24f4 100644 --- a/contrib/mod_defender/spoa.c +++ b/contrib/mod_defender/spoa.c @@ -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) diff --git a/contrib/modsecurity/spoa.c b/contrib/modsecurity/spoa.c index cbabcb2..18ef1d2 100644 --- a/contrib/modsecurity/spoa.c +++ b/contrib/modsecurity/spoa.c @@ -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) diff --git a/contrib/spoa_example/spoa.c b/contrib/spoa_example/spoa.c index 71a36f0..d7486a4 100644 --- a/contrib/spoa_example/spoa.c +++ b/contrib/spoa_example/spoa.c @@ -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) diff --git a/src/flt_spoe.c b/src/flt_spoe.c index 7a19a18..d1323ae 100644 --- a/src/flt_spoe.c +++ b/src/flt_spoe.c @@ -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).