diff options
author | Christian Poessinger <christian@poessinger.com> | 2020-07-12 21:16:22 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2020-07-12 21:16:22 +0200 |
commit | ab841d3588c88e0e8ef86693471281badce92a9f (patch) | |
tree | 8219377087325b06abbe07ecda11f515200d5ec9 | |
parent | a07ff0a587755179b0fa00b8d8bc1700e8425c4e (diff) | |
download | vyatta-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.cc | 5 | ||||
-rw-r--r-- | src/lbdecision.cc | 2 | ||||
-rw-r--r-- | src/lbtest.cc | 2 |
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; |