parser: some more const-correctness for the other functions in msg_parser.[c,h]
[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  * ser is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License 
20  * along with this program; if not, write to the Free Software 
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22  *
23  * History:
24  * 2002-02-14 : created by bogdan
25  * 2003-09-11 : lump_rpl type added - LUMP_RPL_BODY & LUMP_RPL_HDR (bogdan)
26  * 2003-11-11 : build_lump_rpl merged into add_lump_rpl; type removed;
27  *              flags LUMP_RPL_BODY, LUMP_RPL_NODUP and LUMP_RPL_NOFREE
28  *              added (bogdan)
29  * 2006-10-16   add_lump_rpl2 added: same as the old add_lump_rpl, but
30  *               returns a lump_rpl**, making a specific lump removal much
31  *               more easy (andrei)
32  */
33
34 /*!
35  * \file
36  * \brief SIP-router core :: Data lumps
37  * \ingroup core
38  * Module: \ref core
39  */
40
41
42
43 #ifndef data_lump_rpl_h
44 #define data_lump_rpl_h
45
46 #include "parser/msg_parser.h"
47
48
49 #define LUMP_RPL_HDR     (1<<1)
50 #define LUMP_RPL_BODY    (1<<2)
51 #define LUMP_RPL_NODUP   (1<<3)
52 #define LUMP_RPL_NOFREE  (1<<4)
53 #define LUMP_RPL_SHMEM   (1<<5)
54
55 struct lump_rpl
56 {
57         str text;
58         int flags;
59         struct lump_rpl* next;
60 };
61
62 struct lump_rpl** add_lump_rpl2(struct sip_msg *, char *, int , int );
63
64
65 /*! \brief compatibility wrapper for the old add_lump_rpl version */
66 inline static struct lump_rpl* add_lump_rpl(struct sip_msg* msg,
67                                                                                                 char* s, int len , int flags )
68 {
69         struct lump_rpl** l;
70         
71         l=add_lump_rpl2(msg, s, len, flags);
72         return l?(*l):0;
73 }
74
75
76 void free_lump_rpl(struct lump_rpl* );
77
78 void unlink_lump_rpl(struct sip_msg *, struct lump_rpl* );
79
80 void del_nonshm_lump_rpl(  struct lump_rpl ** );
81
82 #endif