aboutgitcodebugslistschat
path: root/flow.c
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2023-11-30 13:02:13 +1100
committerStefano Brivio <sbrivio@redhat.com>2023-12-04 09:51:12 +0100
commiteb8b1a233beee1e11eb700e2201becc34f913f9e (patch)
tree61cb2f037758c5b2dbdd4f16d9c4e5143610938b /flow.c
parent96590b056087bc634cb3c6bb7d7e1a1b85b7bb08 (diff)
downloadpasst-eb8b1a233beee1e11eb700e2201becc34f913f9e.tar
passt-eb8b1a233beee1e11eb700e2201becc34f913f9e.tar.gz
passt-eb8b1a233beee1e11eb700e2201becc34f913f9e.tar.bz2
passt-eb8b1a233beee1e11eb700e2201becc34f913f9e.tar.lz
passt-eb8b1a233beee1e11eb700e2201becc34f913f9e.tar.xz
passt-eb8b1a233beee1e11eb700e2201becc34f913f9e.tar.zst
passt-eb8b1a233beee1e11eb700e2201becc34f913f9e.zip
flow, tcp: Add logging helpers for connection related messages
Most of the messages logged by the TCP code (be they errors, debug or trace messages) are related to a specific connection / flow. We're fairly consistent about prefixing these with the type of connection and the connection / flow index. However there are a few places where we put the index later in the message or omit it entirely. The template with the prefix is also a little bulky to carry around for every message, particularly for spliced connections. To help keep this consistent, introduce some helpers to log messages linked to a specific flow. It takes the flow as a parameter and adds a uniform prefix to each message. This makes things slightly neater now, but more importantly will help keep formatting consistent as we add more things to the flow table. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'flow.c')
-rw-r--r--flow.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/flow.c b/flow.c
index 534638b..d24726d 100644
--- a/flow.c
+++ b/flow.c
@@ -66,3 +66,21 @@ void flow_table_compact(struct ctx *c, union flow *hole)
memset(from, 0, sizeof(*from));
}
+
+/** flow_log_ - Log flow-related message
+ * @f: flow the message is related to
+ * @pri: Log priority
+ * @fmt: Format string
+ * @...: printf-arguments
+ */
+void flow_log_(const struct flow_common *f, int pri, const char *fmt, ...)
+{
+ char msg[BUFSIZ];
+ va_list args;
+
+ va_start(args, fmt);
+ (void)vsnprintf(msg, sizeof(msg), fmt, args);
+ va_end(args);
+
+ logmsg(pri, "Flow %u (%s): %s", flow_idx(f), FLOW_TYPE(f), msg);
+}