blob: 737e0650719fc9d7bfd86d8699d7ed75ac28c60b [file] [log] [blame]
Willy TARREAU3dc06442006-06-15 21:48:13 +02001/*
Willy Tarreaubaaee002006-06-26 02:48:02 +02002 include/proto/session.h
3 This file defines everything related to sessions.
4
Willy Tarreau7c669d72008-06-20 15:04:11 +02005 Copyright (C) 2000-2008 Willy Tarreau - w@1wt.eu
Willy Tarreauf54f8bd2008-11-23 19:53:55 +01006
Willy TARREAU3dc06442006-06-15 21:48:13 +02007 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation, version 2.1
10 exclusively.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20*/
21
Willy Tarreaubaaee002006-06-26 02:48:02 +020022#ifndef _PROTO_SESSION_H
23#define _PROTO_SESSION_H
24
Willy Tarreaue3ba5f02006-06-29 18:54:54 +020025#include <common/config.h>
Willy Tarreauc6ca1a02007-05-13 19:43:47 +020026#include <common/memory.h>
Willy Tarreaubaaee002006-06-26 02:48:02 +020027#include <types/session.h>
Willy TARREAU3dc06442006-06-15 21:48:13 +020028
Willy Tarreauc6ca1a02007-05-13 19:43:47 +020029extern struct pool_head *pool2_session;
Willy Tarreauf54f8bd2008-11-23 19:53:55 +010030extern struct list sessions;
Willy Tarreauc6ca1a02007-05-13 19:43:47 +020031
Willy Tarreaubaaee002006-06-26 02:48:02 +020032void session_free(struct session *s);
33
Willy Tarreauc6ca1a02007-05-13 19:43:47 +020034/* perform minimal intializations, report 0 in case of error, 1 if OK. */
35int init_session();
Willy Tarreaubaaee002006-06-26 02:48:02 +020036
Krzysztof Piotr Oledzki583bc962007-11-24 22:12:47 +010037void session_process_counters(struct session *s);
Willy Tarreau7c669d72008-06-20 15:04:11 +020038void sess_change_server(struct session *sess, struct server *newsrv);
Willy Tarreau26c25062009-03-08 09:38:41 +010039struct task *process_session(struct task *t);
Willy Tarreau84455332009-03-15 22:34:05 +010040void sess_set_term_flags(struct session *s);
41void default_srv_error(struct session *s, struct stream_interface *si);
Krzysztof Piotr Oledzki583bc962007-11-24 22:12:47 +010042
Willy Tarreauf8533202008-08-16 14:55:08 +020043static void inline trace_term(struct session *s, unsigned int code)
44{
45 s->term_trace <<= TT_BIT_SHIFT;
46 s->term_trace |= code;
47}
48
Willy Tarreaubaaee002006-06-26 02:48:02 +020049#endif /* _PROTO_SESSION_H */
Willy TARREAU3dc06442006-06-15 21:48:13 +020050
Willy Tarreaubaaee002006-06-26 02:48:02 +020051/*
52 * Local variables:
53 * c-indent-level: 8
54 * c-basic-offset: 8
55 * End:
56 */