[Spice-devel] [PATCH 2/2] log: define a new spice_warning_limit macro

Uri Lublin uril at redhat.com
Wed Dec 23 07:35:41 PST 2015


On 12/23/2015 04:25 PM, Frediano Ziglio wrote:
> Allow to log but no more than a fixed number of times.
> This to log for instance number of times client do something wrong
> but without causing excessive log or DoS.
> I didn't use atomic operation for decrementing the counter to reduce
> possible contention on the system bus, this will just cause some
> more messages to be printed.
> The signed variable and the check assure that counter does not
> underflow (unless machine has billions of processors and millions of
> clients are connected).
>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>   common/log.h | 8 ++++++++
>   1 file changed, 8 insertions(+)
>
> diff --git a/common/log.h b/common/log.h
> index d9e6023..bd5edc5 100644
> --- a/common/log.h
> +++ b/common/log.h
> @@ -103,6 +103,14 @@ void spice_log(const char *log_domain,
>   } SPICE_STMT_END
>   #endif
>
> +#define spice_warning_limit(n, format, ...) SPICE_STMT_START { \
> +    static int warn_limit = (n); \
> +    if (warn_limit > 0) { \
> +        --warn_limit; \
> +        spice_warning(format, ## __VA_ARGS__); \
> +    } \
> +} SPICE_STMT_END
> +
>   #ifndef spice_critical
>   #define spice_critical(format, ...) SPICE_STMT_START {                      \
>       spice_log(SPICE_LOG_DOMAIN, SPICE_LOG_LEVEL_CRITICAL, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \
>

Hi Frediano,

The patch looks good to me.

When would you use spice_warning and when spice_warning_limit ?

Uri



More information about the Spice-devel mailing list