summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/tools/selinux.c2
-rw-r--r--src/util/debug.c8
-rw-r--r--src/util/util.h14
3 files changed, 17 insertions, 7 deletions
diff --git a/src/tools/selinux.c b/src/tools/selinux.c
index e10f806bb..1f87d40f9 100644
--- a/src/tools/selinux.c
+++ b/src/tools/selinux.c
@@ -122,7 +122,7 @@ static void sss_semanage_error_callback(void *varg,
}
if (DEBUG_IS_SET(level))
- debug_fn("libsemanage", level, "%s\n", message);
+ debug_fn(__FILE__, __LINE__, "libsemanage", level, "%s\n", message);
free(message);
}
diff --git a/src/util/debug.c b/src/util/debug.c
index 6ac916573..3643c2b32 100644
--- a/src/util/debug.c
+++ b/src/util/debug.c
@@ -129,7 +129,11 @@ static void debug_printf(const char *format, ...)
va_end(ap);
}
-void debug_fn(const char *function, int level, const char *format, ...)
+void debug_fn(const char *file,
+ long line,
+ const char *function,
+ int level,
+ const char *format, ...)
{
va_list ap;
struct timeval tv;
@@ -194,7 +198,7 @@ void ldb_debug_messages(void *context, enum ldb_debug_level level,
}
if (DEBUG_IS_SET(loglevel))
- debug_fn("ldb", loglevel, "%s\n", message);
+ debug_fn(__FILE__, __LINE__, "ldb", loglevel, "%s\n", message);
free(message);
}
diff --git a/src/util/util.h b/src/util/util.h
index b5e742f6e..c74ff5b56 100644
--- a/src/util/util.h
+++ b/src/util/util.h
@@ -68,8 +68,11 @@ extern int debug_timestamps;
extern int debug_microseconds;
extern int debug_to_file;
extern const char *debug_log_file;
-void debug_fn(const char *function, int level, const char *format, ...)
- SSS_ATTRIBUTE_PRINTF(3, 4);
+void debug_fn(const char *file,
+ long line,
+ const char *function,
+ int level,
+ const char *format, ...) SSS_ATTRIBUTE_PRINTF(5,6);
int debug_convert_old_level(int old_level);
errno_t set_debug_file_from_fd(const int fd);
@@ -118,8 +121,11 @@ errno_t set_debug_file_from_fd(const int fd);
*/
#define DEBUG(level, format, ...) do { \
int __debug_macro_level = level; \
- if (DEBUG_IS_SET(__debug_macro_level)) \
- debug_fn(__FUNCTION__, __debug_macro_level, format, ##__VA_ARGS__); \
+ if (DEBUG_IS_SET(__debug_macro_level)) { \
+ debug_fn(__FILE__, __LINE__, __FUNCTION__, \
+ __debug_macro_level, \
+ format, ##__VA_ARGS__); \
+ } \
} while (0)
/** \def DEBUG_IS_SET(level)