mirror of
https://passt.top/passt
synced 2025-08-07 00:07:59 +02:00
flow: Add flow_perror() helper
Our general logging helpers include a number of _perror() variants which, like perror(3) include the description of the current errno. We didn't have those for our flow specific logging helpers, though. Fill this gap with flow_perror() and flow_dbg_perror(), and use them where it's useful. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
ba0823f8a0
commit
adb46c11d0
6 changed files with 49 additions and 47 deletions
18
flow.h
18
flow.h
|
@ -258,11 +258,11 @@ int flow_migrate_source(struct ctx *c, const struct migrate_stage *stage,
|
|||
int flow_migrate_target(struct ctx *c, const struct migrate_stage *stage,
|
||||
int fd);
|
||||
|
||||
void flow_log_(const struct flow_common *f, int pri, const char *fmt, ...)
|
||||
__attribute__((format(printf, 3, 4)));
|
||||
|
||||
#define flow_log(f_, pri, ...) flow_log_(&(f_)->f, (pri), __VA_ARGS__)
|
||||
void flow_log_(const struct flow_common *f, bool newline, int pri,
|
||||
const char *fmt, ...)
|
||||
__attribute__((format(printf, 4, 5)));
|
||||
|
||||
#define flow_log(f_, pri, ...) flow_log_(&(f_)->f, true, (pri), __VA_ARGS__)
|
||||
#define flow_dbg(f, ...) flow_log((f), LOG_DEBUG, __VA_ARGS__)
|
||||
#define flow_err(f, ...) flow_log((f), LOG_ERR, __VA_ARGS__)
|
||||
|
||||
|
@ -272,6 +272,16 @@ void flow_log_(const struct flow_common *f, int pri, const char *fmt, ...)
|
|||
flow_dbg((f), __VA_ARGS__); \
|
||||
} while (0)
|
||||
|
||||
#define flow_log_perror_(f, pri, ...) \
|
||||
do { \
|
||||
int errno_ = errno; \
|
||||
flow_log_((f), false, (pri), __VA_ARGS__); \
|
||||
logmsg(true, true, (pri), ": %s", strerror_(errno_)); \
|
||||
} while (0)
|
||||
|
||||
#define flow_dbg_perror(f_, ...) flow_log_perror_(&(f_)->f, LOG_DEBUG, __VA_ARGS__)
|
||||
#define flow_perror(f_, ...) flow_log_perror_(&(f_)->f, LOG_ERR, __VA_ARGS__)
|
||||
|
||||
void flow_log_details_(const struct flow_common *f, int pri,
|
||||
enum flow_state state);
|
||||
#define flow_log_details(f_, pri) \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue