summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-07-12 21:16:22 +0200
committerChristian Poessinger <christian@poessinger.com>2020-07-12 21:16:22 +0200
commitab841d3588c88e0e8ef86693471281badce92a9f (patch)
tree8219377087325b06abbe07ecda11f515200d5ec9
parenta07ff0a587755179b0fa00b8d8bc1700e8425c4e (diff)
downloadvyatta-wanloadbalance-ab841d3588c88e0e8ef86693471281badce92a9f.tar.gz
vyatta-wanloadbalance-ab841d3588c88e0e8ef86693471281badce92a9f.zip
T2696: collection of small fixes to increase stability
- Error on exit when clear routing tables - Possible crash (buffer overflow) in function for receive icmp echo packet - Error in parsing of config file for udp ttl "probe" - Wrong error messge in analyzing config file
-rw-r--r--src/lbdatafactory.cc5
-rw-r--r--src/lbdecision.cc2
-rw-r--r--src/lbtest.cc2
3 files changed, 6 insertions, 3 deletions
diff --git a/src/lbdatafactory.cc b/src/lbdatafactory.cc
index 9729e62..f169163 100644
--- a/src/lbdatafactory.cc
+++ b/src/lbdatafactory.cc
@@ -179,6 +179,9 @@ LBDataFactory::process(const vector<string> &path, int depth, const string &key,
else if (depth == 4 && key == "ttl") {
process_health_interface_rule_type_udp(l_key,l_value);
}
+ else if (depth == 4 && key == "port") {
+ process_health_interface_rule_type_udp(l_key,l_value);
+ }
else if (depth == 4 && key == "test-script") {
process_health_interface_rule_type_user(l_key,l_value);
}
@@ -294,7 +297,7 @@ LBDataFactory::process_health_interface(const string &key, const string &value)
else if (key == "health") {
//nothing
}
- else {
+ else if (key != "") {
if (_debug) {
cout << "LBDataFactory::process_health(): " << "don't understand this symbol: " << key << endl;
}
diff --git a/src/lbdecision.cc b/src/lbdecision.cc
index 0e9ad5a..989f925 100644
--- a/src/lbdecision.cc
+++ b/src/lbdecision.cc
@@ -488,7 +488,7 @@ LBDecision::shutdown(LBData &data)
sprintf(buf,"%d",h_iter->second._interface_index + IPT_MARK_OFFSET);
execute(string("ip rule del table ") + buf, stdout);
- execute(string("ip route del table ") + buf, stdout);
+ execute(string("ip route flush table ") + buf, stdout);
//need to delete ip rule here as well!
diff --git a/src/lbtest.cc b/src/lbtest.cc
index f907c19..c7bbbbc 100644
--- a/src/lbtest.cc
+++ b/src/lbtest.cc
@@ -244,7 +244,7 @@ int
LBTest::receive(int recv_sock)
{
timeval wait_time;
- int icmp_pktsize = 40;
+ int icmp_pktsize = 56;
char resp_buf[icmp_pktsize];
icmphdr *icmp_hdr;
fd_set readfs;