flow_table.h, the lower level flow header relies on having the struct
definitions for every protocol specific flow type - so far that means
tcp_conn.h. It doesn't include it itself, so tcp_conn.h must be included
before flow_table.h.
That's ok for now, but as we use the flow table for more things,
flow_table.h will need the structs for all of them, which means the
protocol specific .c files would need to include tcp_conn.h _and_ the
equivalents for every other flow type before flow_table.h every time,
which is weird.
So, although we *mostly* lean towards the include style where .c files need
to handle the include dependencies, in this case it makes more sense to
have flow_table.h include all the protocol specific headers it needs.
Signed-off-by: David Gibson
---
flow.c | 1 -
flow_table.h | 2 ++
tcp.c | 1 -
tcp_splice.c | 1 -
4 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/flow.c b/flow.c
index a8aeb15..c3f4886 100644
--- a/flow.c
+++ b/flow.c
@@ -15,7 +15,6 @@
#include "siphash.h"
#include "inany.h"
#include "flow.h"
-#include "tcp_conn.h"
#include "flow_table.h"
const char *flow_type_str[] = {
diff --git a/flow_table.h b/flow_table.h
index 0dee66f..e805f10 100644
--- a/flow_table.h
+++ b/flow_table.h
@@ -7,6 +7,8 @@
#ifndef FLOW_TABLE_H
#define FLOW_TABLE_H
+#include "tcp_conn.h"
+
/**
* union flow - Descriptor for a logical packet flow (e.g. connection)
* @f: Fields common between all variants
diff --git a/tcp.c b/tcp.c
index 5b37662..22c3a0e 100644
--- a/tcp.c
+++ b/tcp.c
@@ -298,7 +298,6 @@
#include "inany.h"
#include "flow.h"
-#include "tcp_conn.h"
#include "flow_table.h"
/* Sides of a flow as we use them in "tap" connections */
diff --git a/tcp_splice.c b/tcp_splice.c
index 0e2e04c..a91cb37 100644
--- a/tcp_splice.c
+++ b/tcp_splice.c
@@ -56,7 +56,6 @@
#include "inany.h"
#include "flow.h"
-#include "tcp_conn.h"
#include "flow_table.h"
#define MAX_PIPE_SIZE (8UL * 1024 * 1024)
--
2.43.0