diff options
Diffstat (limited to 'src/lbdecision.cc')
| -rw-r--r-- | src/lbdecision.cc | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/lbdecision.cc b/src/lbdecision.cc index 4ff35b2..fb79994 100644 --- a/src/lbdecision.cc +++ b/src/lbdecision.cc @@ -283,25 +283,25 @@ LBDecision::get_application_cmd(LBRule &rule) if (rule._s_addr.empty() == false) { filter += "--source " + rule._s_addr + " "; } - else if (rule._s_net.empty() == false && rule._s_addr.empty() == true) { - filter += "--source " + rule._s_net + " "; - } if (rule._d_addr.empty() == false) { filter += "--destination " + rule._d_addr + " "; } - else if (rule._d_net.empty() == false && rule._d_addr.empty() == true) { - filter += "--destination " + rule._d_net + " "; - } - else if (rule._proto == "udp" || rule._proto == "tcp") { - if (rule._s_port.empty() == false) { + if (rule._proto == "udp" || rule._proto == "tcp") { + if (rule._s_port.empty() == false && rule._s_port_ipt.empty() == true) { filter += "-m multiport --source-port " + rule._s_port + " "; } + else if (rule._s_port_ipt.empty() == false) { + filter += rule._s_port_ipt + " "; + } - if (rule._d_port.empty() == false) { + if (rule._d_port.empty() == false && rule._d_port_ipt.empty() == true) { filter += "-m multiport --destination-port " + rule._d_port + " "; } + else if (rule._d_port_ipt.empty() == false) { + filter += rule._d_port_ipt + " "; + } } return filter; |
