static void log_matcher_pcre_re_feed_backrefs(LogMatcher *s, LogMessage *msg, gint value_handle, int *matches, gint match_num, const gchar *value) { gint i; gboolean indirect = _shall_set_values_indirectly(value_handle); for (i = 0; i < (RE_MAX_MATCHES) && i < match_num; i++) { gint begin_index = matches[2 * i]; gint end_index = matches[2 * i + 1]; if (begin_index < 0 || end_index < 0) continue; if (indirect) { log_msg_set_match_indirect(msg, i, value_handle, 0, begin_index, end_index - begin_index); } else { log_msg_set_match(msg, i, &value[begin_index], end_index - begin_index); } } }
static void log_matcher_pcre_re_feed_backrefs(LogMatcher *s, LogMessage *msg, gint value_handle, int *matches, gint match_num, const gchar *value) { gint i; for (i = 0; i < (RE_MAX_MATCHES) && i < match_num; i++) { if (value_handle != LM_V_NONE && !log_msg_is_handle_macro(value_handle)) { log_msg_set_match_indirect(msg, i, value_handle, 0, matches[2 * i], matches[2 * i + 1] - matches[2 * i]); } else { log_msg_set_match(msg, i, &value[matches[2 * i]], matches[2 * i + 1] - matches[2 * i]); } } }
static void log_matcher_posix_re_feed_backrefs(LogMatcher *s, LogMessage *msg, gint value_handle, regmatch_t *matches, const gchar *value) { gint i; for (i = 0; i < RE_MAX_MATCHES && matches[i].rm_so != -1; i++) { if (value_handle != LM_V_NONE && !log_msg_is_handle_macro(value_handle)) { log_msg_set_match_indirect(msg, i, value_handle, 0, matches[i].rm_so, matches[i].rm_eo - matches[i].rm_so); } else { log_msg_set_match(msg, i, &value[matches[i].rm_so], matches[i].rm_eo - matches[i].rm_so); } } }