MINOR: stream-int: split si_prepare_embedded into si_prepare_none and si_prepare_applet
si_prepare_embedded() was used both to attach an applet and to detach
anything from a stream interface. Split it into si_prepare_none() to
detach and si_prepare_applet() to attach an applet.
si->conn->target is now assigned from within these two functions instead
of their respective callers.
diff --git a/include/proto/stream_interface.h b/include/proto/stream_interface.h
index bb0c16d..516b11e 100644
--- a/include/proto/stream_interface.h
+++ b/include/proto/stream_interface.h
@@ -51,6 +51,13 @@
return si->conn->ctrl;
}
+static inline void si_prepare_none(struct stream_interface *si)
+{
+ si->ops = &si_embedded_ops;
+ conn_prepare(si->conn, NULL, NULL, NULL, si);
+ si->conn->target = NULL;
+}
+
static inline void si_prepare_conn(struct stream_interface *si, const struct protocol *ctrl, const struct xprt_ops *xprt)
{
si->ops = &si_conn_ops;
@@ -63,10 +70,11 @@
conn_assign(si->conn, &si_conn_cb, ctrl, xprt, si);
}
-static inline void si_prepare_embedded(struct stream_interface *si)
+static inline void si_prepare_applet(struct stream_interface *si, struct si_applet *applet)
{
si->ops = &si_embedded_ops;
conn_prepare(si->conn, NULL, NULL, NULL, si);
+ si->conn->target = &applet->obj_type;
}
/* Sends a shutr to the connection using the data layer */
diff --git a/src/session.c b/src/session.c
index 90bf3de..0f626cd 100644
--- a/src/session.c
+++ b/src/session.c
@@ -469,8 +469,7 @@
s->si[1].conn_retries = 0; /* used for logging too */
s->si[1].release = NULL;
s->si[1].send_proxy_ofs = 0;
- s->si[1].conn->target = NULL;
- si_prepare_embedded(&s->si[1]);
+ si_prepare_none(&s->si[1]);
s->si[1].exp = TICK_ETERNITY;
s->si[1].flags = SI_FL_NONE;
diff --git a/src/stream_interface.c b/src/stream_interface.c
index a38f53a..7faf85f 100644
--- a/src/stream_interface.c
+++ b/src/stream_interface.c
@@ -358,8 +358,7 @@
{
DPRINTF(stderr, "registering handler %p for si %p (was %p)\n", app, si, si->owner);
- si_prepare_embedded(si);
- si->conn->target = &app->obj_type;
+ si_prepare_applet(si, app);
si->release = app->release;
si->flags |= SI_FL_WAIT_DATA;
return si->owner;