diff options
author | Timotej S <6674623+underhood@users.noreply.github.com> | 2023-05-02 17:43:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-02 17:43:51 +0200 |
commit | 2a491f7932b21768149a787c8ef94c5b817471aa (patch) | |
tree | 2f4884c386d27bd6b79849c8c2ff3ee2f2cb0ae0 /aclk/aclk_rx_msgs.c | |
parent | cd5230b596bdc58f5dbdf97fbc0bee0dc6ea56ab (diff) |
Add Cancel Pending Request Message (#14953)
Diffstat (limited to 'aclk/aclk_rx_msgs.c')
-rw-r--r-- | aclk/aclk_rx_msgs.c | 19 |
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 }, }; |