From d3d9b594fe904e6d101522617fdcf18dc5518b16 Mon Sep 17 00:00:00 2001 From: Ben Fuhrmannek Date: Mon, 20 Dec 2021 16:26:12 +0100 Subject: added @warn/@err to config syntax --- src/sp_config_scanner.re | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'src/sp_config_scanner.re') diff --git a/src/sp_config_scanner.re b/src/sp_config_scanner.re index 063d332..b0ee5d5 100644 --- a/src/sp_config_scanner.re +++ b/src/sp_config_scanner.re @@ -4,6 +4,8 @@ #define cs_log_error(fmt, ...) sp_log_err("config", fmt, ##__VA_ARGS__) #define cs_log_info(fmt, ...) sp_log_msg("config", SP_LOG_INFO, fmt, ##__VA_ARGS__) +#define cs_log_warning(fmt, ...) sp_log_warn("config", fmt, ##__VA_ARGS__) + zend_string *sp_get_arg_string(sp_parsed_keyword *kw) { if (!kw || !kw->arg) { @@ -126,6 +128,12 @@ static int sy_apply_op(char op, int a, int b) { int res = sy_apply_op(op, a, b); \ sy_res_push(res); +#define TMPSTR(tmpstr, t2, t1) \ + char tmpstr[1024]; \ + size_t tmplen = MIN(t2-t1-2, 1023); \ + strncpy(tmpstr, t1+1, tmplen); \ + tmpstr[tmplen] = 0; + zend_result sp_config_scan(char *data, zend_result (*process_rule)(sp_parsed_keyword*)) { @@ -186,14 +194,22 @@ zend_result sp_config_scan(char *data, zend_result (*process_rule)(sp_parsed_key } "@condition" ws+ { goto yyc_cond; } "@end_condition" ws* ";" { cond_res[0] = 1; goto yyc_init; } - "@log" ws+ @t1 string? @t2 { - char tmpstr[1024]; - size_t tmplen = MIN(t2-t1-2, 1023); - strncpy(tmpstr, t1+1, tmplen); - tmpstr[tmplen] = 0; + ( "@log" | "@info" ) ws+ @t1 string @t2 { + TMPSTR(tmpstr, t2, t1); cs_log_info("[line %d]: %s", lineno, tmpstr); goto yyc_init; } + ( "@warn" | "@warning" ) ws+ @t1 string @t2 { + TMPSTR(tmpstr, t2, t1); + cs_log_warning("[line %d]: %s", lineno, tmpstr); + goto yyc_init; + } + ( "@err" | "@error" ) ws+ @t1 string @t2 { + TMPSTR(tmpstr, t2, t1); + cs_log_error("[line %d]: %s", lineno, tmpstr); + goto out; + } + ws+ { goto yyc_cond; } nl { lineno++; goto yyc_cond; } -- cgit v1.3