]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: Print source filename and linenum when warning about event field type mismatch
authorKarl Fleischmann <karl.fleischmann@open-xchange.com>
Tue, 13 Dec 2022 16:37:38 +0000 (17:37 +0100)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 16 Dec 2022 08:16:44 +0000 (08:16 +0000)
src/lib/event-filter.c

index 112a60d4dfb1e1488fb56d966e27188ee2f9ca37..79b7d8735421765df7cab790fd9b114576463e03 100644 (file)
@@ -562,7 +562,8 @@ event_filter_handle_numeric_operation(enum event_filter_node_op op,
 
 static bool
 event_match_field(struct event *event, struct event_filter_node *node,
-                 bool use_strcmp)
+                 bool use_strcmp, const char *source_filename,
+                 unsigned int source_linenum)
 {
        const struct event_field *field;
        struct event_field duration;
@@ -607,10 +608,11 @@ event_match_field(struct event *event, struct event_filter_node *node,
                                /* Use i_warning to prevent event filter recursions. */
                                i_warning("Event filter matches integer field "
                                          "'%s' against non-integer value '%s'. "
-                                         "(event=%s)",
+                                         "(event=%s, source=%s:%u)",
                                          wanted_field->key,
                                          wanted_field->value.str,
-                                         name != NULL ? name : "");
+                                         name != NULL ? name : "",
+                                         source_filename, source_linenum);
                                node->warned_type_mismatch = TRUE;
                        }
                        return FALSE;
@@ -673,10 +675,10 @@ event_filter_query_match_cmp(struct event_filter_node *node,
                case EVENT_FILTER_NODE_TYPE_EVENT_CATEGORY:
                        return event_has_category(event, node, log_type);
                case EVENT_FILTER_NODE_TYPE_EVENT_FIELD_EXACT:
-                       return event_match_field(event, node, TRUE);
+                       return event_match_field(event, node, TRUE, source_filename, source_linenum);
                case EVENT_FILTER_NODE_TYPE_EVENT_FIELD_WILDCARD:
                case EVENT_FILTER_NODE_TYPE_EVENT_FIELD_NUMERIC_WILDCARD:
-                       return event_match_field(event, node, FALSE);
+                       return event_match_field(event, node, FALSE, source_filename, source_linenum);
        }
 
        i_unreached();