From: Willy Tarreau Date: Tue, 11 Dec 2012 23:25:44 +0000 (+0100) Subject: MINOR: config: improve error checking on TCP stick-table tracking X-Git-Tag: v1.5-dev15~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5f53de79e4b8dc67d1d75a957a77fe395a715754;p=thirdparty%2Fhaproxy.git MINOR: config: improve error checking on TCP stick-table tracking Commit 5d5b5d added support for multiple types to track-sc* but forgot to check that the types are compatible with the stick-tables. --- diff --git a/src/cfgparse.c b/src/cfgparse.c index f1c45a0053..f7dcf061b5 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -6263,6 +6263,12 @@ int check_config_validity() curproxy->id, trule->act_prm.trk_ctr.table.n ? trule->act_prm.trk_ctr.table.n : curproxy->id); cfgerr++; } + else if (!stktable_compatible_sample(trule->act_prm.trk_ctr.expr, target->table.type)) { + Alert("Proxy '%s': stick-table '%s' uses a type incompatible with the 'track-sc%d' rule.\n", + curproxy->id, trule->act_prm.trk_ctr.table.n ? trule->act_prm.trk_ctr.table.n : curproxy->id, + trule->action == TCP_ACT_TRK_SC1 ? 1 : 2); + cfgerr++; + } else { free(trule->act_prm.trk_ctr.table.n); trule->act_prm.trk_ctr.table.t = &target->table; @@ -6296,6 +6302,12 @@ int check_config_validity() curproxy->id, trule->act_prm.trk_ctr.table.n ? trule->act_prm.trk_ctr.table.n : curproxy->id); cfgerr++; } + else if (!stktable_compatible_sample(trule->act_prm.trk_ctr.expr, target->table.type)) { + Alert("Proxy '%s': stick-table '%s' uses a type incompatible with the 'track-sc%d' rule.\n", + curproxy->id, trule->act_prm.trk_ctr.table.n ? trule->act_prm.trk_ctr.table.n : curproxy->id, + trule->action == TCP_ACT_TRK_SC1 ? 1 : 2); + cfgerr++; + } else { free(trule->act_prm.trk_ctr.table.n); trule->act_prm.trk_ctr.table.t = &target->table;