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.
This commit is contained in:
Willy Tarreau 2015-04-03 18:08:29 +02:00
parent e36cbcb3b0
commit 40606ab976
4 changed files with 5 additions and 0 deletions

View File

@ -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 */

View File

@ -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);

View File

@ -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]);

View File

@ -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;