summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLutz Bichler <Lutz.Bichler@bmw.de>2015-02-02 09:16:02 +0100
committerLutz Bichler <Lutz.Bichler@bmw.de>2015-02-02 09:16:02 +0100
commitb6248d63cfa4551f722f1406e628a3f44e46cda0 (patch)
treee49cb930511bc0ed92563ec3e37f01a0048a882a
parente61b13ec595e74b2ce35b1b7aa7b31f05d113739 (diff)
downloadvSomeIP-b6248d63cfa4551f722f1406e628a3f44e46cda0.tar.gz
Completely remove service entry from routing info structure when no
instance is available anymore. Otherwise, malformed routing info messages are generated from the routing manager stub which crash the attached routing manager proxies.
-rw-r--r--implementation/routing/src/routing_manager_stub.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/implementation/routing/src/routing_manager_stub.cpp b/implementation/routing/src/routing_manager_stub.cpp
index fe769d2..265a9c9 100644
--- a/implementation/routing/src/routing_manager_stub.cpp
+++ b/implementation/routing/src/routing_manager_stub.cpp
@@ -228,6 +228,9 @@ void routing_manager_stub::on_stop_offer_service(client_t _client,
auto found_instance = found_service->second.find(_instance);
if (found_instance != found_service->second.end()) {
found_service->second.erase(_instance);
+ if (0 == found_service->second.size()) {
+ found_client->second.second.erase(_service);
+ }
broadcast_routing_info();
}
}