summaryrefslogtreecommitdiffstats
path: root/src/hs-clientmanager.cpp
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2020-08-19 13:11:19 +0300
committerMarius Vlad <marius.vlad@collabora.com>2020-08-19 17:00:07 +0300
commite5c9cb71a537b92096f2f05058522b811f735838 (patch)
treef16b8c0fe4c9b77ef9dc0b2880c3849571ed3131 /src/hs-clientmanager.cpp
parentf6c6f42502ba2919f23f553239dd8b117440b365 (diff)
hs-proxy: Keep track of clientCtx and client when starting applicationjellyfish_9.99.4jellyfish/9.99.49.99.4
The subscribe verb was used in the past to keep track of applications, which was done in background with the help of event handlers. As that no longer happens we keep track of the client and its clientCtx when starting directly from the homescreen binding, faking the subscribe logic. As the afb_req_t object is no longer in scope when the async callback handler returns, we do it before doing the call to af-main, and assume that we'll succeed. We use the async callback handler to verify if the application was indeed started but any application crashing afterwards will require an additional check performed, as it will found in the hash table of clients. Bug-AGL: SPEC-3524 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I0e417dc5f2953947cd27ca551c0d2a2af5c57e6d
Diffstat (limited to 'src/hs-clientmanager.cpp')
-rw-r--r--src/hs-clientmanager.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/hs-clientmanager.cpp b/src/hs-clientmanager.cpp
index 7c2adc5..beac816 100644
--- a/src/hs-clientmanager.cpp
+++ b/src/hs-clientmanager.cpp
@@ -184,6 +184,7 @@ int HS_ClientManager::handleRequest(afb_req_t request, const char *verb, const c
std::string id(appid);
auto ip = client_list.find(id);
if(ip != client_list.end()) {
+ // FIXME: do another verification here in case the application died
ret = ip->second->handleRequest(request, verb);
}
else {