diff options
| author | Lennart Poettering <lennart@poettering.net> | 2015-09-30 20:07:24 +0200 | 
|---|---|---|
| committer | Lennart Poettering <lennart@poettering.net> | 2015-09-30 22:26:16 +0200 | 
| commit | 0e05ee044a6e23745bb8906ad91ec7b97c37dbac (patch) | |
| tree | 01424c7603710d9763451eb1a2303e30c4ed7692 | |
| parent | 12ca818ffddb77eb6a0fabe369a5bcbf6994ff8b (diff) | |
log: move log_invalid_utf8() to log.h
Also, make sure it follows the same scheme as log_syntax() does in its
behaviour.
| -rw-r--r-- | src/basic/log.h | 12 | ||||
| -rw-r--r-- | src/core/load-fragment.c | 8 | ||||
| -rw-r--r-- | src/shared/conf-parser.c | 6 | ||||
| -rw-r--r-- | src/shared/conf-parser.h | 7 | 
4 files changed, 19 insertions, 14 deletions
| diff --git a/src/basic/log.h b/src/basic/log.h index 569762d083..369d6b1127 100644 --- a/src/basic/log.h +++ b/src/basic/log.h @@ -227,3 +227,15 @@ int log_syntax_internal(                          ? log_syntax_internal(unit, _level, config_file, config_line, _e, __FILE__, __LINE__, __func__, __VA_ARGS__) \                          : -abs(_e);                                     \          }) + +#define log_syntax_invalid_utf8(unit, level, config_file, config_line, rvalue) \ +        ({                                                              \ +                int _level = (level);                                   \ +                if (log_get_max_level() >= LOG_PRI(_level)) {           \ +                        _cleanup_free_ char *_p = NULL;                 \ +                        _p = utf8_escape_invalid(rvalue);               \ +                        log_syntax_internal(unit, _level, config_file, config_line, 0, __FILE__, __LINE__, __func__, \ +                                            "String is not UTF-8 clean, ignoring assignment: %s", strna(_p)); \ +                }                                                       \ +                -EINVAL;                                                \ +        }) diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c index 7180252f36..7d6d46b904 100644 --- a/src/core/load-fragment.c +++ b/src/core/load-fragment.c @@ -259,7 +259,7 @@ int config_parse_unit_path_strv_printf(                  }                  if (!utf8_is_valid(k)) { -                        log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); +                        log_syntax_invalid_utf8(unit, LOG_ERR, filename, line, rvalue);                          return 0;                  } @@ -1835,7 +1835,7 @@ int config_parse_working_directory(                  path_kill_slashes(k);                  if (!utf8_is_valid(k)) { -                        log_invalid_utf8(unit, LOG_ERR, filename, line, 0, rvalue); +                        log_syntax_invalid_utf8(unit, LOG_ERR, filename, line, rvalue);                          return 0;                  } @@ -2193,7 +2193,7 @@ int config_parse_unit_requires_mounts_for(                          return log_oom();                  if (!utf8_is_valid(n)) { -                        log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); +                        log_syntax_invalid_utf8(unit, LOG_ERR, filename, line, rvalue);                          continue;                  } @@ -3172,7 +3172,7 @@ int config_parse_namespace_path_strv(                          return log_oom();                  if (!utf8_is_valid(n)) { -                        log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); +                        log_syntax_invalid_utf8(unit, LOG_ERR, filename, line, rvalue);                          continue;                  } diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c index ed8a926a13..49513dd857 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c @@ -620,7 +620,7 @@ int config_parse_string(          assert(data);          if (!utf8_is_valid(rvalue)) { -                log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); +                log_syntax_invalid_utf8(unit, LOG_ERR, filename, line, rvalue);                  return 0;          } @@ -658,7 +658,7 @@ int config_parse_path(          assert(data);          if (!utf8_is_valid(rvalue)) { -                log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); +                log_syntax_invalid_utf8(unit, LOG_ERR, filename, line, rvalue);                  return 0;          } @@ -724,7 +724,7 @@ int config_parse_strv(const char *unit,                          return log_oom();                  if (!utf8_is_valid(n)) { -                        log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); +                        log_syntax_invalid_utf8(unit, LOG_ERR, filename, line, rvalue);                          free(n);                          continue;                  } diff --git a/src/shared/conf-parser.h b/src/shared/conf-parser.h index 4efed138c9..fb0234baae 100644 --- a/src/shared/conf-parser.h +++ b/src/shared/conf-parser.h @@ -123,13 +123,6 @@ int config_parse_log_level(const char *unit, const char *filename, unsigned line  int config_parse_signal(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);  int config_parse_personality(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); -#define log_invalid_utf8(unit, level, config_file, config_line, error, rvalue) \ -        do {                                                            \ -                _cleanup_free_ char *_p = utf8_escape_invalid(rvalue);  \ -                log_syntax(unit, level, config_file, config_line, error, \ -                           "String is not UTF-8 clean, ignoring assignment: %s", strna(_p)); \ -        } while(false) -  #define DEFINE_CONFIG_PARSE_ENUM(function,name,type,msg)                \          int function(const char *unit,                                  \                       const char *filename,                              \ | 
