diff --git a/include/types/channel.h b/include/types/channel.h index 7b4afc83c..6f52372a4 100644 --- a/include/types/channel.h +++ b/include/types/channel.h @@ -117,7 +117,8 @@ #define CF_NEVER_WAIT 0x08000000 /* never wait for sending data (permanent) */ #define CF_WAKE_ONCE 0x10000000 /* pretend there is activity on this channel (one-shoot) */ -/* unused: 0x20000000, 0x40000000, 0x80000000 */ +/* unused: 0x20000000, 0x40000000 */ +#define CF_ISRESP 0x80000000 /* 0 = request channel, 1 = response channel */ /* Masks which define input events for stream analysers */ #define CF_MASK_ANALYSER (CF_READ_ATTACHED|CF_READ_ACTIVITY|CF_READ_TIMEOUT|CF_ANA_TIMEOUT|CF_WRITE_ACTIVITY|CF_WAKE_ONCE) diff --git a/src/hlua.c b/src/hlua.c index 570c9b4b0..aa6f9954e 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -1908,6 +1908,7 @@ __LJMP static int hlua_socket_new(lua_State *L) */ channel_init(&socket->s->req); channel_init(&socket->s->res); + socket->s->res.flags |= CF_ISRESP; socket->s->req.prod = &socket->s->si[0]; socket->s->req.cons = &socket->s->si[1]; diff --git a/src/peers.c b/src/peers.c index 805b8d089..708c0196c 100644 --- a/src/peers.c +++ b/src/peers.c @@ -1256,6 +1256,8 @@ static struct session *peer_session_create(struct peer *peer, struct peer_sessio s->req.wto = s->be->timeout.server; channel_init(&s->res); + s->res.flags |= CF_ISRESP; + s->res.prod = &s->si[1]; s->res.cons = &s->si[0]; diff --git a/src/session.c b/src/session.c index a924e8cab..4825cb3c1 100644 --- a/src/session.c +++ b/src/session.c @@ -502,6 +502,8 @@ int session_complete(struct session *s) s->req.analyse_exp = TICK_ETERNITY; channel_init(&s->res); + s->res.flags |= CF_ISRESP; + s->res.prod = &s->si[1]; s->res.cons = &s->si[0]; s->res.analysers = 0;