diff options
| author | Michael Larson <slioch@eng-140.vyatta.com> | 2008-02-22 13:10:29 -0800 |
|---|---|---|
| committer | Michael Larson <slioch@eng-140.vyatta.com> | 2008-02-22 13:10:29 -0800 |
| commit | f6550fe08857e6e55db70c75546ec22e8798891d (patch) | |
| tree | 20df9a574205e339cb0d51fc26bb421f48d24830 /src | |
| parent | 7f762bce68d659ae654a611a0d7b7b3100880bcf (diff) | |
| download | vyatta-wanloadbalance-f6550fe08857e6e55db70c75546ec22e8798891d.tar.gz vyatta-wanloadbalance-f6550fe08857e6e55db70c75546ec22e8798891d.zip | |
fixed bug where protocol is all or icmp and source/destination address/network are set. address/network were being ignore--now
fixed.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lbdecision.cc | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/lbdecision.cc b/src/lbdecision.cc index 4893a64..1eefe05 100644 --- a/src/lbdecision.cc +++ b/src/lbdecision.cc @@ -299,21 +299,22 @@ LBDecision::get_application_cmd(LBRule &rule) if (rule._proto == "icmp") { filter += "--icmp-type any "; } - else if (rule._proto == "udp" || rule._proto == "tcp") { - if (rule._s_addr.empty() == false) { - filter += "--source " + rule._s_addr + " "; - } - else if (rule._s_net.empty() == false) { - filter += "--source " + rule._s_net + " "; - } - if (rule._d_addr.empty() == false) { - filter += "--destination " + rule._d_addr + " "; - } - else if (rule._d_net.empty() == false) { - filter += "--destination " + rule._d_net + " "; - } + 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) { filter += "-m multiport --source-port " + rule._s_port + " "; } |
