summaryrefslogtreecommitdiffstats
path: root/aclk/aclk_rx_msgs.c
diff options
context:
space:
mode:
authorTimotej S <6674623+underhood@users.noreply.github.com>2023-05-02 17:43:51 +0200
committerGitHub <noreply@github.com>2023-05-02 17:43:51 +0200
commit2a491f7932b21768149a787c8ef94c5b817471aa (patch)
tree2f4884c386d27bd6b79849c8c2ff3ee2f2cb0ae0 /aclk/aclk_rx_msgs.c
parentcd5230b596bdc58f5dbdf97fbc0bee0dc6ea56ab (diff)
Add Cancel Pending Request Message (#14953)
Diffstat (limited to 'aclk/aclk_rx_msgs.c')
-rw-r--r--aclk/aclk_rx_msgs.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/aclk/aclk_rx_msgs.c b/aclk/aclk_rx_msgs.c
index b4dda5c425..60bff9ba1f 100644
--- a/aclk/aclk_rx_msgs.c
+++ b/aclk/aclk_rx_msgs.c
@@ -6,6 +6,7 @@
#include "aclk_query_queue.h"
#include "aclk.h"
#include "aclk_capas.h"
+#include "aclk_query.h"
#include "schema-wrappers/proto_2_json.h"
@@ -446,6 +447,23 @@ int stop_streaming_contexts(const char *msg, size_t msg_len)
return 0;
}
+int cancel_pending_req(const char *msg, size_t msg_len)
+{
+ struct aclk_cancel_pending_req cmd;
+ if(parse_cancel_pending_req(msg, msg_len, &cmd)) {
+ error_report("Error parsing CancelPendingReq");
+ return 1;
+ }
+
+ log_access("ACLK CancelPendingRequest REQ: %s, cloud trace-id: %s", cmd.request_id, cmd.trace_id);
+
+ if (mark_pending_req_cancelled(cmd.request_id))
+ error_report("CancelPending Request for %s failed. No such pending request.", cmd.request_id);
+
+ free_cancel_pending_req(&cmd);
+ return 0;
+}
+
typedef struct {
const char *name;
simple_hash_t name_hash;
@@ -466,6 +484,7 @@ new_cloud_rx_msg_t rx_msgs[] = {
{ .name = "DisconnectReq", .name_hash = 0, .fnc = handle_disconnect_req },
{ .name = "ContextsCheckpoint", .name_hash = 0, .fnc = contexts_checkpoint },
{ .name = "StopStreamingContexts", .name_hash = 0, .fnc = stop_streaming_contexts },
+ { .name = "CancelPendingRequest", .name_hash = 0, .fnc = cancel_pending_req },
{ .name = NULL, .name_hash = 0, .fnc = NULL },
};