From 208aa54eb572d0271de07ff76ad2284af363d0b2 Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Fri, 22 Dec 2023 11:09:20 +0900 Subject: [PATCH] Send a result with a sequence number When sending the result to amd, the application sends the sequence number. amd will handle the reply by the sequence number. Change-Id: I5f17e6b834b6e85cf038714c468fe9985dd56707 Signed-off-by: Hwankyu Jhun --- src/aul_launch.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/aul_launch.c b/src/aul_launch.c index e09b9d2..f28ea2e 100644 --- a/src/aul_launch.c +++ b/src/aul_launch.c @@ -55,6 +55,7 @@ struct aul_request_s { int cmd; int clifd; bundle *b; + int seq_num; }; typedef struct aul_request_s *aul_request_h; @@ -377,6 +378,7 @@ static void __destroy_request(struct aul_request_s *req) static struct aul_request_s *__create_request(int cmd, int clifd, bundle *b) { struct aul_request_s *req; + const char *val; req = malloc(sizeof(struct aul_request_s)); if (!req) { @@ -387,6 +389,8 @@ static struct aul_request_s *__create_request(int cmd, int clifd, bundle *b) req->cmd = cmd; req->clifd = clifd; req->b = b; + val = bundle_get_val(b, AUL_K_SEQ_NUM); + req->seq_num = val ? atoi(val) : -1; return req; } @@ -400,12 +404,13 @@ static int __send_result(struct aul_request_s *req, int res) if (__find_client_channel(req->clifd) == NULL) _E("Failed to find client channel. fd(%d)", req->clifd); + aul_sock_send_result_v2(req->clifd, req->seq_num, false); ret = aul_sock_send_result_v2(req->clifd, res, false); g_rec_mutex_unlock(&__context.mutex); if (ret < 0) { - _E("Failed to send result. cmd(%s:%d)", + _E("Failed to send result. cmd(%s:%d), seq(%d)", aul_cmd_convert_to_string(req->cmd), - req->cmd); + req->cmd, req->seq_num); return ret; } } @@ -434,11 +439,13 @@ static gboolean __dispatch_request(gpointer data) if (req->cmd >= APP_START && req->cmd < ARRAY_SIZE(__dispatcher) && __dispatcher[req->cmd]) { - _W("Command(%s:%d)", + _W("[%d] Command(%s:%d)", + req->seq_num, aul_cmd_convert_to_string(req->cmd), req->cmd); __dispatcher[req->cmd](req); } else { - _E("Command(%s:%d) is not available", + _E("[%d] Command(%s:%d) is not available", + req->seq_num, aul_cmd_convert_to_string(req->cmd), req->cmd); } -- 2.7.4