From 6cff53ad67b994f68c81aa69a85fce9a1dfe5ef8 Mon Sep 17 00:00:00 2001 From: EMQ-YangM Date: Mon, 21 Mar 2022 19:26:06 +0800 Subject: [PATCH] fix(rule): replace sql crlf with spaces get around the hocon bug: error handling escape character \n --- apps/emqx_rule_engine/src/emqx_rule_engine_api.erl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine_api.erl b/apps/emqx_rule_engine/src/emqx_rule_engine_api.erl index ed103ce92..181a5a244 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine_api.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_engine_api.erl @@ -189,6 +189,11 @@ param_path_id() -> %% Rules API %%------------------------------------------------------------------------------ +%% To get around the hocon bug, we replace crlf with spaces +replace_sql_clrf(#{ <<"sql">> := SQL } = Params) -> + NewSQL = re:replace(SQL, "[\r\n]", " ", [{return, binary}, global]), + Params#{<<"sql">> => NewSQL}. + '/rule_events'(get, _Params) -> {200, emqx_rule_events:event_info()}. @@ -201,7 +206,7 @@ param_path_id() -> <<>> -> {400, #{code => 'BAD_REQUEST', message => <<"empty rule id is not allowed">>}}; Id -> - Params = filter_out_request_body(Params0), + Params = filter_out_request_body(replace_sql_clrf(Params0)), ConfPath = emqx_rule_engine:config_key_path() ++ [Id], case emqx_rule_engine:get_rule(Id) of {ok, _Rule} ->