CLEANUP: connection: offer conn_prepare() to set up a connection
This will be used by checks as well as stream interfaces.
diff --git a/include/proto/connection.h b/include/proto/connection.h
index 32e77cf..94f1c83 100644
--- a/include/proto/connection.h
+++ b/include/proto/connection.h
@@ -412,6 +412,18 @@
conn->flags |= CO_FL_ADDR_TO_SET;
}
+/* prepares a connection with the appropriate app_cb, ctrl and data layers. The
+ * data state and context are set to 0.
+ */
+static inline void conn_prepare(struct connection *conn, const struct app_cb *app,
+ const struct protocol *ctrl, const struct data_ops *data)
+{
+ conn->app_cb = app;
+ conn->ctrl = ctrl;
+ conn->data = data;
+ conn->data_st = 0;
+ conn->data_ctx = NULL;
+}
#endif /* _PROTO_CONNECTION_H */
diff --git a/include/proto/stream_interface.h b/include/proto/stream_interface.h
index 05a3210..f68b6ba 100644
--- a/include/proto/stream_interface.h
+++ b/include/proto/stream_interface.h
@@ -67,31 +67,19 @@
static inline void si_prepare_conn(struct stream_interface *si, const struct protocol *ctrl, const struct data_ops *ops)
{
si->ops = &si_conn_ops;
- si->conn.app_cb = &si_conn_cb;
- si->conn.ctrl = ctrl;
- si->conn.data = ops;
- si->conn.data_st = 0;
- si->conn.data_ctx = NULL;
+ conn_prepare(&si->conn, &si_conn_cb, ctrl, ops);
}
static inline void si_prepare_embedded(struct stream_interface *si)
{
si->ops = &si_embedded_ops;
- si->conn.app_cb = NULL;
- si->conn.ctrl = NULL;
- si->conn.data = NULL;
- si->conn.data_st = 0;
- si->conn.data_ctx = NULL;
+ conn_prepare(&si->conn, NULL, NULL, NULL);
}
static inline void si_prepare_task(struct stream_interface *si)
{
si->ops = &si_task_ops;
- si->conn.app_cb = NULL;
- si->conn.ctrl = NULL;
- si->conn.data = NULL;
- si->conn.data_st = 0;
- si->conn.data_ctx = NULL;
+ conn_prepare(&si->conn, NULL, NULL, NULL);
}
/* Sends a shutr to the connection using the data layer */