From 470280ef632952980a53eb1045ffd5f71082b3fa Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sun, 5 Apr 2015 01:33:13 +0200 Subject: [PATCH] MEDIUM: stream: also accept appctx as origin in stream_accept_session() It's likely that the code could be simplified a bit though. --- src/stream.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/stream.c b/src/stream.c index 7fa399c6a..256b28341 100644 --- a/src/stream.c +++ b/src/stream.c @@ -70,6 +70,7 @@ int stream_accept_session(struct session *sess, struct task *t) struct listener *l = sess->listener; struct proxy *p = sess->fe; struct connection *conn = objt_conn(sess->origin); + struct appctx *appctx = objt_appctx(sess->origin); int ret; int i; @@ -153,6 +154,8 @@ int stream_accept_session(struct session *sess, struct task *t) /* attach the incoming connection to the stream interface now. */ if (conn) si_attach_conn(&s->si[0], conn); + else if (appctx) + si_attach_appctx(&s->si[0], appctx); if (likely(sess->fe->options2 & PR_O2_INDEPSTR)) s->si[0].flags |= SI_FL_INDEP_STR; @@ -207,6 +210,8 @@ int stream_accept_session(struct session *sess, struct task *t) /* finish initialization of the accepted file descriptor */ if (conn) conn_data_want_recv(conn); + else if (appctx) + s->si[0].flags |= SI_FL_WAIT_DATA; /* FIXME: we shouldn't restrict ourselves to connections but for now * the only ->accept() only works with sessions.