|
|
1dc35b |
From ba7ef8b709eb347bfc5b0c76485747f89b90814f Mon Sep 17 00:00:00 2001
|
|
|
1dc35b |
From: Phil Sutter <phil@nwl.cc>
|
|
|
1dc35b |
Date: Thu, 21 Feb 2019 20:09:30 +0100
|
|
|
1dc35b |
Subject: [PATCH] extensions: Fix ipvs vproto parsing
|
|
|
1dc35b |
|
|
|
1dc35b |
This was broken by integration into guided option parser:
|
|
|
1dc35b |
|
|
|
1dc35b |
* Make 'vproto' option XTTYPE_PROTOCOL, otherwise its arguments are
|
|
|
1dc35b |
parsed as garbage only.
|
|
|
1dc35b |
|
|
|
1dc35b |
* Drop O_VPROTO case from ipvs_mt_parse(), due to XTOPT_POINTER() and
|
|
|
1dc35b |
above change there is nothing to do for it in there.
|
|
|
1dc35b |
|
|
|
1dc35b |
Fixes: 372203af4c70f ("libxt_ipvs: use guided option parser")
|
|
|
1dc35b |
Signed-off-by: Phil Sutter <phil@nwl.cc>
|
|
|
1dc35b |
Signed-off-by: Florian Westphal <fw@strlen.de>
|
|
|
1dc35b |
(cherry picked from commit fcbdc69e8a750fe02c9d7c7aced0efc91715132d)
|
|
|
1dc35b |
Signed-off-by: Phil Sutter <psutter@redhat.com>
|
|
|
1dc35b |
---
|
|
|
1dc35b |
extensions/libxt_ipvs.c | 5 +----
|
|
|
1dc35b |
1 file changed, 1 insertion(+), 4 deletions(-)
|
|
|
1dc35b |
|
|
|
1dc35b |
diff --git a/extensions/libxt_ipvs.c b/extensions/libxt_ipvs.c
|
|
|
1dc35b |
index a6c57a030d2c6..fe98fef951686 100644
|
|
|
1dc35b |
--- a/extensions/libxt_ipvs.c
|
|
|
1dc35b |
+++ b/extensions/libxt_ipvs.c
|
|
|
1dc35b |
@@ -27,7 +27,7 @@ enum {
|
|
|
1dc35b |
static const struct xt_option_entry ipvs_mt_opts[] = {
|
|
|
1dc35b |
{.name = "ipvs", .id = O_IPVS, .type = XTTYPE_NONE,
|
|
|
1dc35b |
.flags = XTOPT_INVERT},
|
|
|
1dc35b |
- {.name = "vproto", .id = O_VPROTO, .type = XTTYPE_STRING,
|
|
|
1dc35b |
+ {.name = "vproto", .id = O_VPROTO, .type = XTTYPE_PROTOCOL,
|
|
|
1dc35b |
.flags = XTOPT_INVERT | XTOPT_PUT, XTOPT_POINTER(s, l4proto)},
|
|
|
1dc35b |
{.name = "vaddr", .id = O_VADDR, .type = XTTYPE_HOSTMASK,
|
|
|
1dc35b |
.flags = XTOPT_INVERT},
|
|
|
1dc35b |
@@ -69,9 +69,6 @@ static void ipvs_mt_parse(struct xt_option_call *cb)
|
|
|
1dc35b |
|
|
|
1dc35b |
xtables_option_parse(cb);
|
|
|
1dc35b |
switch (cb->entry->id) {
|
|
|
1dc35b |
- case O_VPROTO:
|
|
|
1dc35b |
- data->l4proto = cb->val.protocol;
|
|
|
1dc35b |
- break;
|
|
|
1dc35b |
case O_VADDR:
|
|
|
1dc35b |
memcpy(&data->vaddr, &cb->val.haddr, sizeof(cb->val.haddr));
|
|
|
1dc35b |
memcpy(&data->vmask, &cb->val.hmask, sizeof(cb->val.hmask));
|
|
|
1dc35b |
--
|
|
|
1dc35b |
2.21.0
|
|
|
1dc35b |
|