From: sergey.kitov Date: Tue, 7 Dec 2021 14:58:43 +0000 (+0200) Subject: lib: Add event_add_int_non_zero() X-Git-Tag: 2.3.19~114 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d8c4013cdc8bfe3d9f52b1d2a68be6cde5d4ab63;p=thirdparty%2Fdovecot%2Fcore.git lib: Add event_add_int_non_zero() --- diff --git a/src/lib/lib-event.c b/src/lib/lib-event.c index 77b07f6bbe..87db436c84 100644 --- a/src/lib/lib-event.c +++ b/src/lib/lib-event.c @@ -1099,6 +1099,14 @@ event_add_int(struct event *event, const char *key, intmax_t num) return event; } +struct event * +event_add_int_nonzero(struct event *event, const char *key, intmax_t num) +{ + if (num != 0) + return event_add_int(event, key, num); + return event; +} + struct event * event_inc_int(struct event *event, const char *key, intmax_t num) { @@ -1663,6 +1671,13 @@ event_passthrough_add_int(const char *key, intmax_t num) return &event_passthrough_vfuncs; } +static struct event_passthrough * +event_passthrough_add_int_nonzero(const char *key, intmax_t num) +{ + event_add_int_nonzero(last_passthrough_event(), key, num); + return &event_passthrough_vfuncs; +} + static struct event_passthrough * event_passthrough_add_timeval(const char *key, const struct timeval *tv) { @@ -1702,6 +1717,7 @@ struct event_passthrough event_passthrough_vfuncs = { .add_fields = event_passthrough_add_fields, .add_str = event_passthrough_add_str, .add_int = event_passthrough_add_int, + .add_int_nonzero = event_passthrough_add_int_nonzero, .add_timeval = event_passthrough_add_timeval, .inc_int = event_passthrough_inc_int, .strlist_append = event_passthrough_strlist_append, diff --git a/src/lib/lib-event.h b/src/lib/lib-event.h index 9d92901a31..74aafd72f9 100644 --- a/src/lib/lib-event.h +++ b/src/lib/lib-event.h @@ -81,6 +81,8 @@ struct event_passthrough { (*add_str)(const char *key, const char *value); struct event_passthrough * (*add_int)(const char *key, intmax_t num); + struct event_passthrough * + (*add_int_nonzero)(const char *key, intmax_t num); struct event_passthrough * (*add_timeval)(const char *key, const struct timeval *tv); @@ -329,6 +331,9 @@ struct event * event_add_str(struct event *event, const char *key, const char *value); struct event * event_add_int(struct event *event, const char *key, intmax_t num); +/* Adds int value to event if it is non-zero */ +struct event * +event_add_int_nonzero(struct event *event, const char *key, intmax_t num); /* Increase the key's value. If it's not set or isn't an integer type, initialize the value to num. */ struct event *