From: Willy Tarreau Date: Fri, 3 Apr 2015 16:08:29 +0000 (+0200) Subject: MINOR: session: add a pointer to the session's origin X-Git-Tag: v1.6-dev2~272 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=40606ab97673fb8dc78b7313faebcda5a2ede4da;p=thirdparty%2Fhaproxy.git MINOR: session: add a pointer to the session's origin A session's origin is the entity that was responsible for creating the session. It can be an applet or a connection for now. --- diff --git a/include/types/session.h b/include/types/session.h index 8902065b15..6f26ca9944 100644 --- a/include/types/session.h +++ b/include/types/session.h @@ -38,6 +38,7 @@ struct session { struct proxy *fe; /* the proxy this session depends on for the client side */ struct listener *listener; /* the listener by which the request arrived */ + enum obj_type *origin; /* the connection / applet which initiated this session */ }; #endif /* _TYPES_SESSION_H */ diff --git a/src/hlua.c b/src/hlua.c index 2934054446..363c09b28c 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -2197,6 +2197,8 @@ __LJMP static int hlua_socket_new(lua_State *L) goto out_fail_conn1; appctx->ctx.hlua.socket = socket; appctx->ctx.hlua.connected = 0; + socket->s->sess->origin = &appctx->obj_type; + LIST_INIT(&appctx->ctx.hlua.wake_on_write); LIST_INIT(&appctx->ctx.hlua.wake_on_read); diff --git a/src/peers.c b/src/peers.c index df6d47a1cf..c27fad048e 100644 --- a/src/peers.c +++ b/src/peers.c @@ -1169,6 +1169,7 @@ static struct stream *peer_session_create(struct peer *peer, struct peer_session goto out_fail_conn1; appctx->st0 = PEER_SESS_ST_CONNECT; appctx->ctx.peers.ptr = (void *)ps; + s->sess->origin = &appctx->obj_type; si_reset(&s->si[1]); diff --git a/src/stream.c b/src/stream.c index 132e425e0a..357e5615a8 100644 --- a/src/stream.c +++ b/src/stream.c @@ -123,6 +123,7 @@ int stream_accept(struct listener *l, int cfd, struct sockaddr_storage *addr) s->sess->listener = l; s->sess->fe = p; + s->sess->origin = &cli_conn->obj_type; s->si[0].flags = SI_FL_NONE; s->si[1].flags = SI_FL_ISBACK;