]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Add perr functions to print fr_strerror() stacks related to config issues
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 7 Jun 2017 20:01:13 +0000 (16:01 -0400)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 7 Jun 2017 20:01:13 +0000 (16:01 -0400)
src/include/conf_file.h
src/main/conf_file.c

index 407e9267f0f8ca3ae9ac83e75256735b3feba387..ee271aa9c4ed1c93276a5dd1f2e5a5f863b24e3c 100644 (file)
@@ -511,7 +511,9 @@ CONF_ITEM   *cf_section_to_item(CONF_SECTION const *cs);
  */
 void           cf_log_err(CONF_ITEM const *ci, char const *fmt, ...)           CC_HINT(format (printf, 2, 3));
 void           cf_log_err_cs(CONF_SECTION const *cs, char const *fmt, ...)     CC_HINT(format (printf, 2, 3));
+void           cf_log_perr_cs(CONF_SECTION const *cs, char const *fmt, ...)    CC_HINT(format (printf, 2, 3));
 void           cf_log_err_cp(CONF_PAIR const *cp, char const *fmt, ...)        CC_HINT(format (printf, 2, 3));
+void           cf_log_perr_cp(CONF_PAIR const *cp, char const *fmt, ...)       CC_HINT(format (printf, 2, 3));
 void           cf_log_err_by_name(CONF_SECTION const *parent,
                                   char const *name, char const *fmt, ...) CC_HINT(format (printf, 3, 4));
 void           cf_log_warn_cp(CONF_PAIR const *cp, char const *fmt, ...)       CC_HINT(format (printf, 2, 3));
index f8ee88fd0ce628bebfe20b1c0727859c943bb5fa..d1de7a2fa59c88c1b13452176f3599c7e16f35c2 100644 (file)
@@ -4418,6 +4418,20 @@ void cf_log_err_cs(CONF_SECTION const *cs, char const *fmt, ...)
               buffer);
 }
 
+void cf_log_perr_cs(CONF_SECTION const *cs, char const *fmt, ...)
+{
+       va_list ap;
+       char buffer[256];
+
+       va_start(ap, fmt);
+       vsnprintf(buffer, sizeof(buffer), fmt, ap);
+       va_end(ap);
+
+       rad_assert(cs != NULL);
+
+       PERROR("%s[%d]: %s", cs->item.filename, cs->item.lineno, buffer);
+}
+
 void cf_log_err_cp(CONF_PAIR const *cp, char const *fmt, ...)
 {
        va_list ap;
@@ -4429,9 +4443,21 @@ void cf_log_err_cp(CONF_PAIR const *cp, char const *fmt, ...)
 
        rad_assert(cp != NULL);
 
-       ERROR("%s[%d]: %s",
-             cp->item.filename, cp->item.lineno,
-             buffer);
+       ERROR("%s[%d]: %s", cp->item.filename, cp->item.lineno, buffer);
+}
+
+void cf_log_perr_cp(CONF_PAIR const *cp, char const *fmt, ...)
+{
+       va_list ap;
+       char buffer[256];
+
+       va_start(ap, fmt);
+       vsnprintf(buffer, sizeof(buffer), fmt, ap);
+       va_end(ap);
+
+       rad_assert(cp != NULL);
+
+       PERROR("%s[%d]: %s", cp->item.filename, cp->item.lineno, buffer);
 }
 
 void cf_log_err_by_name(CONF_SECTION const *parent, char const *name, char const *fmt, ...)