Merge ser tls module into the sip-router repository
[sip-router] / data_lump_rpl.h
1 /*
2  * $Id$
3  *
4  *
5  * Copyright (C) 2001-2003 FhG Fokus
6  *
7  * This file is part of ser, a free SIP server.
8  *
9  * ser is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version
13  *
14  * For a license to use the ser software under conditions
15  * other than those described here, or to purchase support for this
16  * software, please contact iptel.org by e-mail at the following addresses:
17  *    info@iptel.org
18  *
19  * ser is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22  * GNU General Public License for more details.
23  *
24  * You should have received a copy of the GNU General Public License 
25  * along with this program; if not, write to the Free Software 
26  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
27  *
28  * History:
29  * 2002-02-14 : created by bogdan
30  * 2003-09-11 : lump_rpl type added - LUMP_RPL_BODY & LUMP_RPL_HDR (bogdan)
31  * 2003-11-11 : build_lump_rpl merged into add_lump_rpl; type removed;
32  *              flags LUMP_RPL_BODY, LUMP_RPL_NODUP and LUMP_RPL_NOFREE
33  *              added (bogdan)
34  * 2006-10-16   add_lump_rpl2 added: same as the old add_lump_rpl, but
35  *               returns a lump_rpl**, making a specific lump removal much
36  *               more easy (andrei)
37  */
38
39
40 #ifndef data_lump_rpl_h
41 #define data_lump_rpl_h
42
43 #include "parser/msg_parser.h"
44
45
46 #define LUMP_RPL_HDR     (1<<1)
47 #define LUMP_RPL_BODY    (1<<2)
48 #define LUMP_RPL_NODUP   (1<<3)
49 #define LUMP_RPL_NOFREE  (1<<4)
50 #define LUMP_RPL_SHMEM   (1<<5)
51
52 struct lump_rpl
53 {
54         str text;
55         int flags;
56         struct lump_rpl* next;
57 };
58
59 struct lump_rpl** add_lump_rpl2(struct sip_msg *, char *, int , int );
60
61
62 /* compatibility wrapper for the old add_lump_rpl version */
63 inline static struct lump_rpl* add_lump_rpl(struct sip_msg* msg,
64                                                                                                 char* s, int len , int flags )
65 {
66         struct lump_rpl** l;
67         
68         l=add_lump_rpl2(msg, s, len, flags);
69         return l?(*l):0;
70 }
71
72
73 void free_lump_rpl(struct lump_rpl* );
74
75 void unlink_lump_rpl(struct sip_msg *, struct lump_rpl* );
76
77 void del_nonshm_lump_rpl(  struct lump_rpl ** );
78
79 #endif