summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Larson <slioch@eng-140.vyatta.com>2008-02-22 13:10:29 -0800
committerMichael Larson <slioch@eng-140.vyatta.com>2008-02-22 13:10:29 -0800
commitf6550fe08857e6e55db70c75546ec22e8798891d (patch)
tree20df9a574205e339cb0d51fc26bb421f48d24830 /src
parent7f762bce68d659ae654a611a0d7b7b3100880bcf (diff)
downloadvyatta-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.cc27
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 + " ";
}